home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / minix / up1510b.tgz / up1510b / man / man1 next >
Text File  |  1990-07-19  |  125KB  |  2,465 lines

  1. #animals
  2. Command:   animals - twenty questions type guessing game about animals
  3. Syntax:    animals [database]
  4. Flags:     (none)
  5. Example:   animals                      # Start the game
  6.    Animals is a guessing game.  The user picks an animal and the computer tries
  7. to guess it by posing questions that should be answered by typing ``y'' for yes
  8. and ``n'' for no. Whenever the computer loses,  it  asks  some  questions  that
  9. allow  it to improve its data base, so as time goes on, it learns.  The default
  10. data base should be in /usr/lib/animals.
  11.  
  12. #ar
  13. Command:   ar - archiver
  14. Syntax:    ar [qrxdpmt][abivulc] [posname] archive file ...
  15. Flags:     (none)
  16. Examples:  ar r libc.a sort.s           # Replace sort.s in libc.a
  17.            ar rb a.s libc.a b.s         # Insert b.s before a.s in libc.a
  18.    Ar allows groups of files to be put together into a single archive.   It  is
  19. normally  used  for  libraries  of compiled procedures.  The following keys are
  20. allowed:
  21.   q: quickly append to the end of the archive file.
  22.   m: move named files. Ar expects a, b, or i to be specified.
  23.   r: replace (append when not in archive).
  24.   d: delete. Ar will delete the named members.
  25.   t: print the archive's table of contents.
  26.   p: print the named files (list them on stdout)
  27.   x: extract
  28. The keys may optionally concatencated with one or more of the following:
  29.   l: local temporary file for work instead of /tmp/ar.$$$$$
  30.   v: verbose
  31.   a: after posname
  32.   b: before posname
  33.   i: before posname
  34.   c: create  (suppresses creation message)
  35.   u: replace only if dated later than member in archive
  36.  
  37. #ascii
  38. Command:   ascii - strip all the pure ASCII lines from a file
  39. Syntax:    ascii [-n] [file]
  40. Flags:     -n  Extract the lines containing nonASCII characters
  41. Examples:  ascii file >outf             # Write all the ASCII lines on outf
  42.            ascii -n <file >outf         # Write all thenonASCII lines on outf
  43.    Sometimes a file contains some nonASCII characters  that  are  in  the  way.
  44. This  program  allows  the lines containing only ASCII characters to be grepped
  45. from the file. With the -n flag, the nonASCII  lines  are  grepped.  No  matter
  46. whether  the flag is used or not, the program returns an exit status of true if
  47. the file is pure ASCII, and false otherwise.
  48.  
  49. #asld
  50. Command:   asld - assembler-loader
  51. Syntax:    asld [-d] [-s] [-o name] file...
  52. Flags:     -L  A listing is produced on stdout
  53.            -T  Used to specify a directory for the temporary file
  54.            -o  Output goes to file named by next argument
  55.            -i  Use separate I & D space (64K + 64K)
  56.            -s  A symbol table is produced on stdout
  57. Examples:  asld -s file.s               # Assemble file.s and  list symbols
  58.            asld -o output file.s        # Assemble file.s, put binary on output
  59.            asld -T. file1.s file2.s     # Use current directory for temporary file
  60.    Asld is the MINIX assembler and loader  combined.   It  accepts  a  language
  61. similar  to  that  accepted  by  the  PC-IX  assembler.  Symbols are made up of
  62. letters, digits and underscores.  The machine instructions and addressing modes
  63. are the same as those used by PC-IX, except that modes using multiple registers
  64. are written like this example: mov ax,(bx_si).  Constant operands  are  denoted
  65. by  a  number  sign.   Local  labels are permitted in the usual UNIX style: the
  66. instruction jmp 1f jumps forward to the closest label 1:
  67.    The pseudoinstructions accepted by the assembler are listed below:
  68.   .align n  Align to a multiple of n bytes
  69.   .ascii strAssemble a string
  70.   .asciz strAssemble a zero-terminated string
  71.   .bss      What follows goes in the bss segment
  72.   .byte n   Assemble one or more bytes
  73.   .data     What follows goes in the data segment
  74.   .define symExport sym from the file
  75.   .errnz n  Force error if n is nonzero
  76.   .even     Align to an even address
  77.   .extern symDeclare sym external
  78.   .globl symSame as extern
  79.   .long n   Assemble n as a long
  80.   .org adr  Set address within current segment
  81.   .short n  Assemble n as a short
  82.   .space n  Skip n bytes
  83.   .text     What follows goes in the text segment
  84.   .word n   Assemble n as a word
  85.   .zerow n  Assemble n words of zeros
  86. In the above pseudoinstructions,  adr  is  an  expression  yielding  a  machine
  87. address,  n  is a numeric expression, str is a quoted string, and sym is a sym-
  88. bol.  The library /usr/lib/libc.a is a packed archive of assembly code.  To see
  89. some  examples  of it, extract some files from the archive with ar and then use
  90. the filter libupack to convert them to readable ASCII.
  91.    MINIX does not use .o files.  Compiler output is packed  assembly  language,
  92. as  are  the  modules in an archive.  This scheme requires reassembling archive
  93. modules all the time, but it saves precious diskette space.
  94.  
  95. #ast
  96. Command:   ast - add symbol table to executable file
  97. Syntax:    ast [-xX] [file] [symbol_file]
  98. Flags:     -x  Do not preserve local symbols
  99.            -X  preserve
  100. Example:   ast -X a.out                 # Add symbols from symbol.out to a.out
  101.    Ast adds the symbol table produced by the -s option of asld to  the  execut-
  102. able  file.  If  no symbol table file is listed, the default name symbol.out is
  103. used.  The  symbol  table  can  be  generated  by  the  command  cc  -s  file.c
  104. >symbol.out.
  105.  
  106. #at
  107. Command:   at - execute commands at a later time
  108.            at time [month day] [file]
  109. Flags:     (none)
  110. Examples:  at 2315 Jan 31 myfile        # Myfile executed Jan 31 at 11:15 pm
  111.            at 0900                      # Job input read from stdin
  112.            at 0711 4 29                 # Read from stdin, exec on April 29
  113.    At prepares a file to be executed later at the specified time by creating  a
  114. special  entry  in  /usr/spool/at. The program atrun should be started periodi-
  115. cally, for example, every minute by cron.  Atrun checks to see if any files  in
  116. /usr/spool/at  should now be run, and if so, it runs them and then puts them in
  117. /usr/spool/at/past.  The name of the file created in  /usr/spool/at  by  at  is
  118. YY.DDD.HHMM.UU  (where YY, DDD, HH, and MM give the time to execute and UU is a
  119. unique number).  Note that when the command runs, it will not be  able  to  use
  120. stdin or stdout unless specifically redirected.  In the first example above, it
  121. might be necessary to put >/dev/tty0 on some lines in the shell script  myfile.
  122. The same holds for the commands typed directly to at.
  123.  
  124. #backup
  125. Command:   backup - backup files
  126. Syntax:    backup [-dmnvz]
  127. Flags:     -d  At top level, only directories are backed up
  128.            -j  Do not copy junk: *.o, *.Z, *.bak, a.out, core, etc
  129.            -m  If device full, prompt for new diskette
  130.            -n  Do not backup top-level directories
  131.            -s  Do not copy *.s files
  132.            -t  Preserve creation times
  133.            -v  Verbose; list files being backed up
  134.            -z  Compress the files on the backup medium
  135. Examples:  backup -mz . /f0             # Backup current directory compressed
  136.            backup /bin /usr/bin         # Backup bin from RAM disk to hard disk
  137.    Backup (recursively) backs up the contents of a given directory and its sub-
  138. directories  to  another  part  of  the  file system.  It has two typical uses.
  139. First, some portion of the file  system  can  be  backed  up  onto  1  or  more
  140. diskettes.   When a diskette fills up, the user is prompted for a new one.  The
  141. backups are in the form of mountable file systems.  Second, a directory on  RAM
  142. disk  can  be  backed up onto hard disk.  If the target directory is empty, the
  143. entire source directory is copied there, optionally compressed to  save  space.
  144. If  the  target  directory is an old backup, only those files changed since the
  145. backup was made are copied.  Backup uses times for this purpose, like make.
  146.  
  147. #badblocks
  148. Command:   badblocks - put a list of bad blocks in a file
  149. Syntax:    badblocks block_special
  150. Flags:     (none)
  151. Example:   badblocks /dev/fd1           # Handle bad blocks on /dev/fd1
  152.    If a device develops bad sectors, it is important to not have them allocated
  153. to  important  files.   This  program  makes it possible to collect up to 7 bad
  154. blocks into a file, so they will not be allocated for a ``real'' file. When the
  155. program  starts  up,  it asks for a list of bad blocks.  Then it creates a file
  156. whose name is of the form .Bad_xxxxx, where xxxxx is a pid.
  157.  
  158. #banner
  159. Command:   banner - print a banner
  160. Syntax:    banner arg ...
  161. Flags:     (none)
  162. Example:   banner happy birthday        # Print a banner saying happy birthday
  163.    Banner prints its arguments on stdout using a matrix of 6  x  6  pixels  per
  164. character.  The @ sign is used for the pixels.
  165.  
  166. #basename
  167. Command:   basename - strip off file prefixes and suffixes
  168. Syntax:    basename file [suffix]
  169. Flags:     (none)
  170. Examples:  basename /user/ast/file      # Strips path to yield file
  171.            basename /user/file.c .c     # Strips path and .c to yield file
  172.    The initial directory names (if any) are removed yielding the  name  of  the
  173. file  itself.   If  a second argument is present, it is interpreted as a suffix
  174. and is also stripped, if present.  This program  is  primarily  used  in  shell
  175. scripts.
  176.  
  177. #bawk
  178. Command:   bawk - pattern matching language
  179. Syntax:    bawk rules [file] ...
  180. Flags:     (none)
  181. Examples:  bawk rules input             # Process input according to rules
  182.            bawk rules - >out            # Input from terminal, output to out
  183.    Awk is a pattern matching language.  Bawk is Basic Awk, a subset of the ori-
  184. ginal.  The language is described in /usr/doc/bawk.doc.  The file name - can be
  185. used to designate stdin.
  186.  
  187. #btoa
  188. Command:   btoa - binary to ascii conversion
  189. Syntax:    btoa [-adhor] [infile] [outfile]
  190. Flags:     -a  Decode, rather than encode, the file
  191.            -d  Extracts repair file from diagnosis file
  192.            -h  Help menu is displayed giving the options
  193.            -o  The obsolete algorithm is used for backward compatibility
  194.            -r  Repair a damaged file
  195. Examples:  btoa <a.out >a.btoa          # Convert a.out to ASCII
  196.            btoa -a <a.btoa >a.out       # Reverse the above
  197.    Btoa is a filter that converts a binary file to ascii for transmission  over
  198. a  telephone line.  If two file names are provided, the first in used for input
  199. and the second for output.  If only one is provided, it is used  as  the  input
  200. file.   The  program  is a functionally similar alternative to uue/uud, but the
  201. encoding is completely different.  Since both of these are  widely  used,  both
  202. have  been  provided  with MINIX.  The file is expanded about 25 percent in the
  203. process.
  204.  
  205. #cal
  206. Command:   cal - print a calendar
  207. Syntax:    cal [month] year
  208. Flags:     (none)
  209. Example:   cal 3 1992                   # Print March 1992
  210.    Cal prints a calendar for a month or year.  The year can be  between  1  and
  211. 9999.  Note  that  the year 91 is not a synonym for 1991, but is itself a valid
  212. year about 19 centuries ago.  The calendar produced is the one used by  England
  213. and her colonies.  Try Sept. 1752, Feb 1900, and Feb 2000.  If you don't under-
  214. stand what is going on, look up Calendar, Gregorian in a good encyclopedia.
  215.  
  216. #cat
  217. Command:   cat - concatenate files and write them to stdout
  218. Syntax:    cat [-u] file...
  219. Flags:     -u  Unbuffered output
  220. Examples:  cat file                     # Display file on the terminal
  221.            cat file1 file2 | lpr        # Concatenate 2 files and print result
  222.    Cat concatenates its input files and copies the result  to  stdout.   If  no
  223. input  file  is  named,  or  - is encountered as a file name, standard input is
  224. used.  Output is buffered in 512 byte blocks unless the -u flag is given.
  225.  
  226. #cc
  227. Command:   cc - C compiler
  228. Syntax:    cc [-FRSTUciosuw] [-Dname]... [-Idir]... [-LIB] file ...
  229. Flags:     -D  The flag -Dx=y defines a macro x with value y
  230.            -F  Use a file instead of a pipe for preprocessor output
  231.            -I  -Idir searches dir for include files
  232.            -LIB Produce a library module
  233.            -R  Complain about all non Kernighan & Ritchie code
  234.            -S  Produce an assembly code file, then stop
  235.            -T  The flag -Tdir tells cem to use dir for temporary files
  236.            -U  Undefine a macro
  237.            -c  Compile only. Do not link. (Same as -S)
  238.            -i  Use separate I & D space (64K + 64K)
  239.            -o  Put output on file named by next arg
  240.            -s  Include symbol table in executable file
  241.            -v  Verbose. Print pass names
  242.            -w  Suppress warning messages
  243. Examples:  cc -c file.c                 # Compile file.c
  244.            cc -D_MINIX file.c           # Treat the symbol _MINIX as defined
  245.            cc -c -LIB file.c            # Make a module for the library
  246.            cc -R -o out file.c          # Check for K & R; output to out
  247.    This is the C compiler.  It has five passes, as follows:
  248. Program       Input  Output Operation performed
  249.    /lib/cpp   prog.c prog.i C preprocessor: #include, #define, #ifdef
  250.    /lib/cem   prog.i prog.k Parsing and semantic analysis
  251.    /usr/lib/opt      prog.k prog.mOptimization of the intermediate code
  252.    /usr/lib/cg       prog.m prog.sCode generation
  253.    /usr/lib/asld     prog.s a.outAssembly and linking
  254. The main program, cc, forks appropriately  to  call  the  passes,  transmitting
  255. flags  and  arguments.   The -v flag causes the passes to be listed as they are
  256. called.
  257.    The -c or -S flags stop compilation when cg has produced  an  assembly  code
  258. file  (in packed format) because the current assembler-loader expects that (see
  259. under File Formats later in this appendix).  The libraries are also archives of
  260. packed  assembly  code  files,  except that defined symbols must be declared by
  261. .define statements at the beginning.  To make  modules  for  inclusion  in  the
  262. library,  use  the  -c  and -LIB options.  There is no way to get .o files; the
  263. packed assembly language files are used as a substitute.  They can be  unpacked
  264. with the filter libupack.
  265.    The -R flag gives warnings about all constructions not permitted by official
  266. Kernighan  and  Ritchie  C.  The average garden-variety C program that has been
  267. flawlessly acceptedly by most C compilers contains  surprisingly  many  illegal
  268. constructions.  Try it.
  269.    The compiler normally keeps  cpp  and  cem  in  memory  at  the  same  time,
  270. transferring  the  output  of  cpp  to  cem using a pipe.  However, if there is
  271. insufficient memory available to hold both at once, the -F flag can be given to
  272. cause  these  two passes to be run strictly sequentially, with the preprocessor
  273. output being stored on a file in /tmp (unless  -T  is  used).   When  available
  274. memory is very limited (e.g., a 512K machine), it may be necessary to run chmem
  275. to reduce the sizes of the compiler passes that do not fit, typically cem.
  276.    The other passes, especially asld, can create large temporary files in /tmp.
  277. To compile very large programs, first type
  278.      cc -c *.c
  279. to get .s files.  Then remove /lib/cpp and /lib/cem and  possibly  other  files
  280. from the RAM disk to make more space for /tmp.  Finally, type
  281.      cc *.s
  282. which results in
  283.      asld /usr/lib/crtso.s *.s /usr/lib/libc.a /usr/lib/end.s
  284. to produce the a.out file.  The files removed from the RAM disk can be restored
  285. by mounting the root file system and copying them from there, or the system can
  286. be shut down and rebooted.
  287.    If the compiler (or, in fact, almost any program) begins acting strange,  it
  288. is almost always due to its running out of space, either stack space or scratch
  289. file space.  The relevant pass can be given more stack space using chmem.  More
  290. space for scratch files can be obtained by removing other files on the device.
  291.    The compiler is derived from the ACK system (Tanenbaum et  al.,  1983),  not
  292. from  the  AT&T  portable  C compiler.  It has been shoehorned onto the PC with
  293. some loss of performance.
  294.  
  295. #cdiff
  296. Command:   cdiff - context diff
  297. Syntax:    cdiff [-c] old new
  298. Flags:     -cn How much context to provide
  299. Examples:  cdiff old new >f             # Write context diff on f
  300.            cdiff -c1 old new >f         # Use only 1 line of context
  301.    Cdiff produces a context diff by first running diff and then adding context.
  302. Some  update  programs, like patch, can use context diffs to update files, even
  303. in the presence of other, independent changes.
  304.  
  305. #cgrep
  306. Command:   cgrep - grep and display context
  307. Syntax:    cgrep [-a n] [-b n] [-l n] [-w n] pattern [file] ...
  308. Flags:     -a  How many lines to display after the matching line
  309.            -b  How many lines to display before the matching line
  310.            -f  Suppress file name in the output
  311.            -l  Lines are truncated to this length before comparison
  312.            -n  Suppress line numbers in the output
  313.            -w  Sets window size (same as -a n -b n)
  314. Example:   cgrep -w 3 hello file1       # Print 3 lines of context each way
  315.    Cgrep is a program like grep, except that it also  can  print  a  few  lines
  316. above  and/or below the matching lines.  It also prints the line numbers of the
  317. output.
  318.  
  319. #chgrp
  320. Command:   chgrp - change group
  321. Syntax:    chgrp group file ...
  322. Flags:     (none)
  323. Example:   chgrp system file1 file2     # Make system the group of the files
  324.    The group field of the named files is changed to  group.   Alternatively,  a
  325. decimal  gid  may be specified instead of a user name.  Only the super-user may
  326. execute this command.
  327.  
  328. #chmem
  329. Command:   chmem - change memory allocation
  330. Syntax:    chmem [+] [-] [=] amount file
  331. Flags:     (none)
  332. Examples:  chmem =50000 a.out           # Give a.out 50K of stack space
  333.            chmem -4000 a.out            # Reduce the stack space by 4000 bytes
  334.            chmem +1000 file1            # Increase each stack by 1000 bytes
  335.    When a program is loaded into memory, it is allocated enough memory for  the
  336. text  and  data+bss  segments, plus an area for the stack.  Data segment growth
  337. using malloc, brk, or sbrk eats up stack space from the low end.  The amount of
  338. stack  space  to  allocate  is derived from a field in the executable program's
  339. file header.  If the combined stack and data segment growth exceeds  the  stack
  340. space allocated, the program will be terminated.
  341.    It is therefore important to set the amount of stack  space  carefully.   If
  342. too little is provided, the program may crash.  If too much is provided, memory
  343. will be wasted, and fewer programs will be able to fit in memory and run simul-
  344. taneously.   MINIX  does  not  swap,  so  that  when memory is full, subsequent
  345. attempts to fork will fail.  The compiler sets the stack space to  the  largest
  346. possible  value  (for  the  Intel CPUs, 64K - text - data).  For many programs,
  347. this value is far too large.  Nonrecursive programs that do not call brk, sbrk,
  348. or malloc, and do not have any local arrays usually do not need more than 8K of
  349. stack space.
  350.    The chmem command changes the value of the header field that determines  the
  351. stack allocation, and thus indirectly the total memory required to run the pro-
  352. gram.  The = option sets the stack size to  a  specific  value;  the  +  and  -
  353. options increment and decrement the current value by the indicated amount.  The
  354. old and new stack sizes are printed.
  355.  
  356. #chmod
  357. Command:   chmod - change access mode for files
  358. Syntax:    chmod octal-number file ...
  359.            chmod [augo][+-=][rwxst] file ...
  360. Flags:     (none)
  361. Examples:  chmod 755 file               # Owner: rwx Group: r-x Others: r-x
  362.            chmod +x file1 file2         # Make file1 and file2 executable
  363.            chmod a-w file               # Make file read only
  364.            chmod u+s file               # Turn on SETUID for file
  365.            chmod g=u                    # Group perms set to same as user perms.
  366.    The given mode is applied to each file in the file list.  The  mode  can  be
  367. either  absolute or symbolic.  Absolute modes are given as an octal number that
  368. represents the new file mode.  The mode bits are defined as follows:
  369.   4000    Set effective user id on execution to file's owner id
  370.   2000    Set effective group id on execution to file's group id
  371.   0400    file is readable by the owner of the file
  372.   0200    writeable by owner
  373.   0100    executable by owner
  374.   0070    same as above, for other users in the same group
  375.   0007    same as above, for all other users
  376. Symbolic modes modify the current file mode in a specified way.  They take  the
  377. form:
  378.   [who] op permissions { op permissions }
  379. The possibilities for [who] are u, g, o, and a, standing for user, group, other
  380. and all, respectively. If [who] is omitted, a is assumed, but the current umask
  381. is used. The op can be +, -, or =;  + turns on the given permissions,  -  turns
  382. them off; = sets the permissions exclusively for the given who. For example g=x
  383. sets the group permissions to --x.
  384.    The possible permissions are r, w, x; which stand for read, write, and  exe-
  385. cute;   s turns on the set effective user/group id bits. u, g and o in the per-
  386. missions field stand for the current user, group,  or  other  permission  bits,
  387. respectively. Only one of these may be used at a time.  s only makes sense with
  388. u and g; o+s is harmless and does  nothing.  Multiple  symbolic  modes  may  be
  389. specified, separated by commas.
  390.  
  391. #chown
  392. Command:   chown - change owner
  393. Syntax:    chown user file ...
  394. Flags:     (none)
  395. Example:   chown ast file1 file2        # Make ast the owner of the files
  396.    The owner field of the named files is changed  to  user  (i.e.,  login  name
  397. specified).   Alternatively,  a  decimal uid may be specified instead of a user
  398. name.  Only the super-user may execute this command.
  399.  
  400. #clr
  401. Command:   clr - clear the screen
  402. Syntax:    clr
  403. Flags:     (none)
  404. Example:   clr                          # Clear the screen
  405.    All text is removed from the screen, resulting in an empty screen  with  the
  406. cursor positioned in the upper left-hand corner.
  407.  
  408. #cmp
  409. Command:   cmp - compare two files
  410.            cmp [-ls] file1 file2
  411. Flags:     -l  Loud mode. Print bytes that differ (in octal)
  412.            -s  Silent mode.  Print nothing, just return exit status
  413. Examples:  cmp file1 file2              # Tell whether the files are the same
  414.            cmp -l file1 file2           # Print all corresponding bytes that differ
  415.    Two files are compared.  If they are identical, exit status 0  is  returned.
  416. If they differ, exit status 1 is returned.  If the files cannot be opened, exit
  417. status 2 is returned.  If file1 is - , stdin is compared to file2.
  418.  
  419. #comm
  420. Command:   comm - print lines common to two sorted files
  421. Syntax:    comm [-123] file1 file2
  422. Flags:     -1  Suppress column 1 (lines only in file1)
  423.            -2  Suppress column 2 (lines only in file2)
  424.            -3  Suppress column 3 (lines in both files)
  425. Examples:  comm file1 file2             # Print all three columns
  426.            comm -12 file1 file2         # Print only lines common to both files
  427.    Two sorted files are read and compared.  A three column listing is produced.
  428. Files only in file1 are in column 1; files only in file2 are in column 2; files
  429. common to both files are in column 3.  The file name - means stdin.
  430.  
  431. #compress
  432. Command:   compress - compress a file using modified Lempel-Ziv coding
  433. Syntax:    compress [-cdfv] [file] ...
  434. Flags:     -c  Put output on stdout instead of on file.Z
  435.            -d  Decompress instead of compress
  436.            -f  Force output even if there is no saving
  437.            -v  Verbose mode
  438. Examples:  compress <infile >outfile    # Compress 1 file
  439.            compress x y z               # Compress 3 files to x.Z, y.Z, and z.Z
  440.            compress -d file.Z           # Decompress file.Z to file
  441.    The listed files (or stdin, if none are  given)  are  compressed  using  the
  442. Ziv-Lempel  algorithm.   If the output is smaller than the input, the output is
  443. put on file.Z or stdout if no files  are  listed.  If  compress  is  linked  to
  444. uncompress, the latter is the same as giving the -d flag.  Similarly, a link to
  445. zcat decompresses to stdout.
  446.  
  447. #cp
  448. Command:   cp - copy file
  449. Syntax:    cp file1 file2
  450.            cp file ... directory
  451. Flags:     (none)
  452. Examples:  cp oldfile newfile           # Copy oldfile to newfile
  453.            cp file1 file2 /usr/ast      # Copy two files to a directory
  454.    Cp copies one file to another, or copies one or more files to  a  directory.
  455. A file cannot be copied to itself.
  456.  
  457. #cpdir
  458. Command:   cpdir - copy a directory and its subdirectories
  459. Syntax:    cpdir [-v] srcdir destdir
  460. Flags:     -v  Verbose; cpdir tells what it is doing
  461. Example:   cpdir dir1 dir2              # Creat dir2 and copy dir1's files into it
  462.    Cpdir creates the target directory, goes into it, and copies all  the  files
  463. in  the source directory to it.  When it is done, the target directory contains
  464. the same files as the source directory.  Subdirectories are copied recursively.
  465. Links and special files are ignored.
  466.  
  467. #crc
  468. Command:   crc - print the checksum of the file data
  469. Syntax:    crc file ...
  470. Flags:     (none)
  471. Example:   crc *.c                      # Print checksums of all the C programs
  472.    The checksum of each argument is computed and printed, along with  the  file
  473. length  and its name, one file per lie.  This program is useful for seeing if a
  474. file transmitted to another machine has arrived correctly.  It is  conceptually
  475. similar  to  sum,  except  that  it uses a stronger checksum algorithm and also
  476. prints the length.
  477.  
  478. #cron
  479. Command:   cron - clock daemon
  480. Syntax:    cron
  481. Flags:     (none)
  482. Example:   /usr/bin/cron                # Use absolute path in /etc/rc
  483.    Cron is clock daemon.  It is typically started up by including  the  command
  484. /usr/bin/cron in the /etc/rc file.  Once started, cron puts itself in the back-
  485. ground, so no & is needed.  It runs forever, sleeping most of the time.  Once a
  486. minute it wakes up and examines /usr/lib/crontab to see if there is any work to
  487. do.  If there is, the work is done.  The entries of /usr/lib/crontab contain  6
  488. elements each.  Some examples follow:
  489.  min   hr dat   mo                   daycommand
  490.  *  *  *  *  *  /usr/bin/date >/dev/tty0   #print date every minute
  491.  0  *  *  *  *  /usr/bin/date >/dev/tty0   #print date on the hour
  492.  30 4  *  *  1-5                     /bin/backup /dev/fd1       #do backup Mon-Fri at 0430
  493.  30 19 *  *  1,3,5                   /etc/backup /dev/fd1       #Mon, Wed, Fri at 1930
  494.  0  9  25 12 *  /usr/bin/sing >/dev/tty0   #Xmas morning at 0900 only
  495.  
  496. #cut
  497. Command:   cut - select out columns of a file
  498. Syntax:    cut [-i] [-dc] [-farg]
  499.            cut  [-carg]
  500. Flags:     -dc Change the column delimiter to c
  501.            -i  Runs of delimiters count as one
  502. Examples:  cut -f2 file                 # Extract field 2
  503.            cut -c1-2,5 file             # Extract character columns 1, 2, and 5
  504.            cut -c1-5,7- file            # Extract all columns except 6
  505.    Cut extracts one or more fields or columns from a file and  writes  them  on
  506. standard  output.  If the -f flag is used, the fields are separated by a delim-
  507. iter character, normally a tab, but can be changed using the -d flag.   If  the
  508. -c  flag  is  used, specific columns can be specified.  The -f and -c flags are
  509. mutually exclusive.
  510.  
  511. #date
  512. Command:   date - print or set the date and time
  513. Syntax:    date [[MMDDYY]hhmm[ss]]
  514. Flags:     -q  Read the date from stdin
  515. Examples:  date                         # Print the date and time
  516.            date 0221921610              # Set date to Feb 21, 1992 at 4:10 p.m.
  517.    Without an argument, date prints the current date and time.  With  an  argu-
  518. ment,  it  sets  the date and time.  MMDDYY refers to the month, day, and year;
  519. hhmmss refers to the hour, minute and second.  Each of the six fields  must  be
  520. exactly two digits.
  521.  
  522. #dd
  523. Command:   dd - disk dumper
  524. Syntax:    dd [option = value] ...
  525. Flags:     (none)
  526. Examples:  dd if=/dev/fd0 of=/dev/fd1   # Copy disk 0 to disk 1
  527.            dd if=x of=y bs=1w skip=4    # Copy x to y, skipping 4 words
  528.            dd if=x of=y count=3         # Copy three 512-byte blocks
  529.    This command is intended for copying partial files.  The  block  size,  skip
  530. count, and number of blocks to copy can be specified.  The options are:
  531.   if = file    - Input file (default is stdin)
  532.   of = file    - Output file (default is standard output)
  533.   ibs = n      - Input block size (default 512 bytes)
  534.   obs = n      - Output block size (default is 512 bytes)
  535.   bs = n       - Block size; sets ibs and obs (default is 512 bytes)
  536.   skip = n     - Skip n input blocks before reading
  537.   seek = n     - Skip n output blocks before writing
  538.   count = n    - Copy only n input blocks
  539.   conv = lcase - Convert upper case letters to lower case
  540.   conv = ucase - Convert lower case letters to upper case
  541.   conv = swab  - Swap every pair of bytes
  542.   conv = noerror- Ignore errors and just keep going
  543. Where sizes are expected, they are in bytes.  However, the letters w, b,  or  k
  544. may  be appended to the number to indicate words (2 bytes), blocks (512 bytes),
  545. or K (1024 bytes), respectively.  When dd is finished, it reports the number of
  546. full and partial blocks read and written.
  547.  
  548. #de
  549. Command:   de - disk editor
  550. Syntax:    de [-w] block_device
  551.            de -r file
  552. Flags:     -r  Recover a file that has been removed
  553.            -w  Enable writing, so device can be modified
  554. Examples:  de -r /usr/ast/prog.c        # Undo the effects of: rm /usr/ast/prog.c
  555.            de -w /dev/fd0               # Edit /dev/fd0 for writing
  556.    De is a program for system administrators that allows disks to be  inspected
  557. block  by  block.   A variety of display options and commands are available, as
  558. described in /usr/doc/de.doc.  For a summary, start the program and type h  for
  559. help.   The  program  can also restore files that have just been removed by rm,
  560. provided that the i-node and blocks  are  still  intact.   Another  feature  is
  561. searching  disks  for  ASCII  strings,  to  help  locate  things after a crash.
  562. Finally, individual disk words can be changed, for example, the sizes of  block
  563. special files.
  564.  
  565. #df
  566. Command:   df - report on free disk space and i-nodes
  567. Syntax:    df special ...
  568. Flags:     (none)
  569. Examples:  df /dev/ram                  # Report on free RAM disk space
  570.            df /dev/fd0 /dev/fd1         # Report on floppy disk space
  571.            df                           # Report on all mounted devices
  572.    The amount of disk space and number  of  i-nodes,  both  free  and  used  is
  573. reported.
  574.  
  575. #dhrystone
  576. Command:   dhrystone - integer benchmark
  577. Syntax:    dhrystone
  578. Flags:     (none)
  579. Example:   dhrystone                    # Run the dhrystone benchmark
  580.    Many years ago, a floating-point benchmark called whetstone was popular  for
  581. benchmarking FORTRAN programs.  Nowadays, an integer benchmark called dhrystone
  582. is widely used for benchmarking UNIX systems.  This is it.  Be warned, however,
  583. that dhrystone is entirely CPU bound, and goes blindingly fast on machines with
  584. high-speed caches.  Although this is a good measure  for  programs  that  spend
  585. most  of  their  time  in some inner loop, it is a poor benchmark for I/O bound
  586. applications.
  587.  
  588. #diff
  589. Command:   diff - print differences between two files
  590. Syntax:    diff file1 file2
  591. Flags:     (none)
  592. Example:   diff file1 file2             # Print differences between 2 files
  593.    Diff compares two files and generates a list of lines telling  how  the  two
  594. files differ.  Lines may not be longer than 128 characters.
  595.  
  596. #dis88
  597. Command:   dis88 - disassembler
  598. Syntax:    dis88 [-o] infile [outfile]
  599. Flags:     -o  List the object code along with the assembly code
  600. Examples:  dis88 a.out >listing         # Disassemble a.out
  601.            dis88 -o a.out listing       # Ditto, but with object code
  602.    Dis88 is an 8088 disassembler. It takes an executable file  and  prints  the
  603. symbolic assembly code that corresponds to it.  If the executable file contains
  604. a symbol table (added by the program ast), the symbol table information is used
  605. to give a more readable asembly listing.
  606.  
  607. #diskcheck
  608. Command:   diskcheck - check a disk for bad sectors
  609. Syntax:    diskcheck device start count
  610. Flags:     (none)
  611. Examples:  diskcheck /dev/at0 0 1200    # Check 1.2 MB floppy
  612.            diskcheck /dev/at0 100 50    # Check blocks 100 to 149
  613.    Diskcheck checks a disk for bad sectors by reading in each sector, writing a
  614. known bit pattern onto it, reading it back in and comparing with what was writ-
  615. ten.  This check is then done a second time.  Bad sectors are reported.   After
  616. each sector is tested, the original sector is restored.
  617.  
  618. #dosdir
  619. Command:   dosdir - list an MS-DOS directory
  620. Syntax:    dosdir [-lr] drive
  621. Flags:     -l  Long listing
  622.            -r  Recursively descend and print subdirectories
  623. Examples:  dosdir -l A                  # List root directory on drive A
  624.            dosdir -r C x/y              # Recursively list directory x/y
  625.    Dosdir reads standard IBM PC diskettes or hard  disk  partitions  in  MS-DOS
  626. format  and  lists  their  contents on standard output.  Directory names should
  627. contain slashes to separate components, even though  MS-DOS  uses  backslashes.
  628. The names dosdir, dosread, and doswrite are all links to the same program.  The
  629. program sees which function to perform by seeing how it was  called.   A  drive
  630. code  of  A  causes the program to use /dev/dosA, typically a link to /dev/fd0.
  631. Similarly, to have hard disk partition 1 be DOS drive C, /dev/dosC should be  a
  632. link to /dev/hd1, and so on for other drive codes.
  633.  
  634. #dosread
  635. Command:   dosread - read a file from an MS-DOS diskette
  636. Syntax:    dosread
  637. Flags:     -a  ASCII file
  638. Examples:  dosread C g/adv >adv         # Read file g/adv from hard disk
  639.            dosread -a A prog.c >x       # Read ASCII file prog.c from drive A
  640.    Dosread reads one MS-DOS file and writes it on standard  output.   The  file
  641. name  must use slash, not backslash as a separator.  ASCII files have the final
  642. CTRL-Z stripped, and carriage return plus line feed are  mapped  to  line  feed
  643. only,  the usual MINIX convention.  A drive code of A causes the program to use
  644. /dev/dosA, typically a link to /dev/fd0.  Similarly, to have hard  disk  parti-
  645. tion  1  be  DOS drive C, /dev/dosC should be a link to /dev/hd1, and so on for
  646. other drive codes.
  647.  
  648. #doswrite
  649. Command:   doswrite - write a file onto an MS-DOS diskette
  650. Syntax:    doswrite [-a] drive file
  651. Flags:     -a  ASCII file
  652. Examples:  doswrite A x/y <z            # Write file z to disk as x/y
  653.            doswrite -a B f              # Copy stdin to MS-DOS file f
  654.    Doswrite writes its stdin to an MS-DOS file.  The diskette or partition must
  655. be formatted and have an MS-DOS file system already in place, including all the
  656. directories leading up to the file.  A drive code of A causes  the  program  to
  657. use /dev/dosA, typically a link to /dev/fd0.  Similarly, to have hard disk par-
  658. tition 1 be DOS drive C, /dev/dosC should be a link to /dev/hd1, and so on  for
  659. other drive codes.
  660.  
  661. #du
  662. Command:   du - print disk usage
  663. Syntax:    du [-s] dir
  664. Flags:     -s  Summary only
  665. Example:   du dir                       # List disk space used by files in dir
  666.    Du examines a directory and prints the amount of space occupied by the files
  667. in that directory and its subdirectories.
  668.  
  669. #echo
  670. Command:   echo - print the arguments
  671. Syntax:    echo [-n] argument ...
  672. Flags:     -n  No line feed is output when done
  673. Examples:  echo Start Phase 1           # ``Start Phase 1'' is printed
  674.            echo -n Hello                # ``Hello'' is printed without line feed
  675.    Echo writes its arguments to standard output.  They are separated by  blanks
  676. and  terminated  with  a  line feed unless -n is present.  This command is used
  677. mostly in shell scripts.
  678.  
  679. #ed
  680. Command:   ed - editor
  681. Syntax:    ed file
  682. Flags:     (none)
  683. Example:   ed prog.c                    # Edit prog.c
  684.    Ed is functionally equivalent to the standard V7 editor, ed. It supports the
  685. following commands:
  686.      (.) a: append
  687.      (.,.)c: change
  688.      (.,.)d: delete
  689.          e: edit new file"
  690.          f: print name of edited file"
  691.      (1,$)g: global command
  692.      (.) i: insert
  693.      (.,.+1)j: join lines together
  694.      (.) k: mark
  695.      (.) l: print with special characters in octal
  696.      (.,.)m: move
  697.      (.,.)p: print
  698.          q: quit editor"
  699.      (.) r: read in new file
  700.      (.,.)s: substitute
  701.      (1,$)v: like g, except select lines that do not match
  702.      (1,$)w: write out edited file
  703. Many of the commands can take one or two addresses, as  indicated  above.   The
  704. defaults are shown in parentheses.  Thus 'a' appends to the current line, and g
  705. works on the whole file as default.  The dot refers to the current line.  Below
  706. is a sample editing session with comments given following the # symbol.
  707.      ed prog.c           # Edit prog.c
  708.      3,20p               # Print lines 3 through 20
  709.      /whole/             # Find next occurence of whole
  710.      s/whole/while/      # Replace 'whole' by while
  711.      g/Buf/s//BUF/g      # Replace Buf by BUF everywhere
  712.      w                   # Write the file back
  713.      q                   # Exit the editor
  714.  
  715. #elle
  716. Command:   elle - ELLE Looks Like Emacs
  717. Syntax:    elle file [file2]
  718. Flags:     (none)
  719. Example:   elle file.c                  # Start the editor
  720.    Elle is a screen-oriented editor that is patterned after Emacs.  It can edit
  721. multiple files, regardless of their length, can support 1 or 2 windows, and has
  722. many other powerful features.  An elle manual is present in /usr/doc/elle.doc.
  723.  
  724. #expand
  725. Command:   expand - convert tabs to spaces
  726. Syntax:    expand [-t1,t2, ...] [file]
  727. Flags:     -t  Tab stop positions
  728. Example:   expand -16,32,48,64          # Expand stdin with tabs every 16 columns
  729.    Expand replaces tabs in the named  files  with  the  equivalent  numbers  of
  730. spaces.  If no files are listed, stdin is given.  If only one tab is given, the
  731. rest are multiples of it.  The default is a tab every 8 spaces.
  732.  
  733. #expr
  734. Command:   expr - evaluate experession
  735. Syntax:    expr arg ...
  736. Flags:     (none)
  737. Example:   x=`expr  + 1`                # Add 1 to shell variable x
  738.    Expr computes the value of its argument and writes the  result  on  standard
  739. output.   The  valid  operators,  in order of increasing precedence, are listed
  740. below.  Operators grouped by {...} have the same precedence.  Operators: |,  &,
  741. {<, <=, ==, !=, >=, >}, {+, -}, *.
  742.    Note that the V7 ":" operator is missing.  Parentheses are permitted.
  743.  
  744. #factor
  745. Command:   factor - factor an integer less than 2**31
  746. Syntax:    factor number
  747. Flags:     (none)
  748. Example:   factor 450180                # Print the prime factors of 450180
  749.    Factor prints the prime factors of its argument in increasing  order.   Each
  750. factor is printed as many times as it appears in the number.
  751.  
  752. #fdisk
  753. Command:   fdisk - partition a hard disk
  754. Syntax:    fdisk [-heads] [file]
  755. Flags:     -n  Number of disk heads
  756. Example:   fdisk /dev/hd1               # Examine disk partitions
  757.    When fdisk starts up, it reads in the partition table and displays  it.   It
  758. then  presents  a menu to allow the user to modify partitions, store the parti-
  759. tion table on a file, or load it from a file.   Partitions  can  be  marked  as
  760. MINIX,  DOS  or  other,  as  well  as  active  or  not.   Using  fdisk is self-
  761. explanatory. However, be aware that repartitioning a disk may cause information
  762. on  it  to be lost.  Rebooting the system is mandatory after changing partition
  763. sizes. MINIX, XENIX, PC-IX, and MS-DOS all have different ideas about how  par-
  764. titions are numbered.  Be careful.
  765.    Furthermore, MINIX expects all partitions to begin on an even sector.  The m
  766. command,  which marks a partition as MINIX, automatically rounds odd partitions
  767. upward.
  768.  
  769. #fgrep
  770. Command:   fgrep - fast grep
  771. Syntax:    fgrep [-cfhlnsv] [file] [string] [file] ...
  772. Flags:     -c  Count matching lines and only print count, not the lines
  773.            -f  Take strings from file named in following argument
  774.            -h  Omit file headers from printout
  775.            -l  List file names once only
  776.            -n  Each line is preceded by its line number
  777.            -s  Status only, no output
  778.            -v  Print only lines not matching
  779. Examples:  fgrep % prog.c               # Print lines containing % sign
  780.            fgrep -f pattern prog.c      # Take strings from pattern
  781.    Fgrep is essentially the same as grep, except  that  it  only  searches  for
  782. lines  containing literal strings (no wildcard characters), and it is much fas-
  783. ter.
  784.  
  785. #file
  786. Command:   file - make a guess as to a file's type based on contents
  787. Syntax:    file name ...
  788. Flags:     (none)
  789. Example:   file a.out ar.h              # Guess at types
  790.    File reads the first block of a file and tries to make an intelligent  guess
  791. about  what  kind  of  file it is. It understands about archives, C source pro-
  792. grams, executable binaries, shell scripts, and English text.
  793.  
  794. #find
  795. Command:   find - find files meeting a given condition
  796. Syntax:    find directory expression
  797. Flags:     (none)
  798. Examples:  find /  -name a.out -print   # Print all a.out paths
  799.            find /usr/ast ! -newer f -ok rm {} ;# Ask before removing
  800.            find /usr -size +20 -exec mv {} /big ;# move files > 20 blks
  801.            find /  -name a.out -o -name `*.o` ) -exec rm {};# 2 conds
  802.    Find descends the file tree starting at the given  directory  checking  each
  803. file  in  that  directory  and  its subdirectories against a predicate.  If the
  804. predicate is true, an action is taken.  The predicates may be connected  by  -a
  805. (Boolean  and),  -o  (Boolean or) and !  (Boolean negation).  Each predicate is
  806. true under the conditions specified below.  The integer n may  also  be  +n  to
  807. mean  any value greater than n, -n to mean any value less than n, or just n for
  808. exactly n.
  809.   -name s true if current filename is s (include shell wild cards)
  810.   -size n true if file size is n blocks
  811.   -inum n true if the current file's i-node number is n
  812.   -mtime ntrue if modification time relative to today (in days) is n
  813.   -links ntrue if the number of links to the file is n
  814.   -newer ftrue if the file is newer than f
  815.   -perm n true if the file's permission bits = n (n is in octal)
  816.   -user u true if the uid = u (a numerical value, not a login name)
  817.   -grogp gtrue if the gid = g (a numerical value, not a group name)
  818.   -type x where x is bcdfug (block, char, dir, regular, setuid, setgid)
  819.   -xdev   do not cross devices to search mounted file systems
  820. Following the expression can be one of the following, telling what to do when a
  821. file is found:
  822.   -print  print the file name on standard output
  823.   -exec   execute a MINIX command, {} stands for the file name
  824.   -ok     prompts before executing the command
  825.  
  826. #fix
  827. Command:   fix - generate new file from old one and diff listing
  828. Syntax:    fix oldfile difflist >newfile
  829. Flags:     (none)
  830. Example:   fix old difflist >new        # Generate new from old and diffs
  831.    Fix accepts a diff listing produced by diff and reconstructs the  new  file.
  832. It is common for people to take a file, modify it, and then send the diff list-
  833. ing between the old and new files to other people.  Using fix,  the  old  file,
  834. and the diff listing, it is possible to creat the new file.  For example:
  835.   diff oldfile newfile >difflist
  836.   fix oldfile difflist >new2
  837. will generate a file new2 that is identical to newfile.  A  more  sophisticated
  838. alternative to fix is patch.
  839.  
  840. #fold
  841. Command:   fold - fold long lines
  842. Syntax:    fold [-n] [file] ...
  843. Flags:     -n  How long should the output lines be
  844. Examples:  fold -60                     # Fold stdin to 60 characters
  845.            fold -1 file                 # Fold file to 80 characters
  846.    Fold takes copies its input from the named file (or stdin, if none is speci-
  847. fied)  to standard output.  However, lines longer than the given maximum length
  848. (default 80) are broken into multiple lines of the maximum length by  inserting
  849. new line characters.
  850.  
  851. #fortune
  852. Command:   fortune - print a fortune
  853. Syntax:    fortune
  854. Flags:     (none)
  855. Example:   fortune                      # Print a fortune
  856.    Fortune   picks   a   fortune   at   random   from   the   fortunes    file,
  857. /usr/lib/fortune.dat,  and  prints  it.   This  file consists of pieces of text
  858. separated by a line containing only %%.
  859.  
  860. #from
  861. Command:   from - input half of a connection
  862. Syntax:    from port
  863. Flags:     (none)
  864. Examples:  from port | sort >x          # Fetch and sort an incoming file
  865.            from abc | sh                # Primitive sherver
  866.    To and from are used together to provide  connection-oriented  service.   On
  867. the sending machine, the last member of a pipeline is to port. On the receiving
  868. machine, the first member of a pipe line is from port. The net result  is  that
  869. the  output  of the sending pipeline goes into the input of the receiving pipe-
  870. line, making pipelines work across the network.
  871.  
  872. #fsck
  873. Command:   fsck - perform file system consistency check
  874. Syntax:    fsck [-aclmrs] [device] ...
  875. Flags:     -a  Automatically repair inconsistencies
  876.            -c  Check and list only the specified i-nodes
  877.            -l  List the files and directories in the filesytem
  878.            -m  Make a new file system
  879.            -r  Prompt user for repairs if inconsistencies are found
  880.            -s  List the superblock of the file system
  881. Examples:  fsck /dev/hd4                # Check file system on /dev/hd4
  882.            fsck -a /dev/at0             # Automatically fix errors on /dev/at0
  883.            fsck -l /dev/fd0             # List the contents of /dev/fd0
  884.            fsck -c 2 3 /dev/hd3         # Check and list /dev/hd3 i-nodes 2 & 3
  885.    Fsck performs consistency checks on the file systems  which  reside  on  the
  886. specified devices. It may also be used to list the contents of a file system or
  887. to make a new file system. Fsck can be run from the  initial  menu  and  during
  888. normal  production.  The default number of heads and sectors/track are built in
  889. to the program (4 and 17, respectively).  To change these, use  ???.   If  they
  890. are set wrong, fsck will give absurd errors.
  891.  
  892. #gather
  893. Command:   gather - gather up the files in a directory for transmission
  894. Syntax:    gather [-s] source_dir [-d] dest_dir [-b] bytes [-f] file
  895. Flags:     -b  Desired number of bytes per output file
  896.            -d  Destination directory
  897.            -f  Base name of output files
  898.            -s  Source directory
  899. Examples:  gather                       # Collect files in current dir into 60K archives
  900.            gather -d dir                # Put the archives in dir
  901.            gather -b 90000              # Try to produce 90K archives
  902.            gather -s .. -d targ -b 90000# Try to produce 90K archives
  903.    It is often useful to collect all the files in a directory into one or  more
  904. archives  for transmission by mail.  This program collects all the files in the
  905. source directory (default:  current  directory)  and  puts  them  into  a  shar
  906. archive.   The  shar  archive  is then compressed and uuencoded.  An attempt is
  907. made to have the final .uue file be about the given size  (default:  60K),  but
  908. since gather cannot really predict how much shar will add to the file, how much
  909. compress will reduce the file, and how much uue will add again, the  sizes  can
  910. fluctuate.   If the -f file flag is given, the archives will be given the names
  911. file_00.uue, file_01.uue etc.  If -f is not  given,  the  name  of  the  source
  912. directory is used as the base name.
  913.  
  914. #getlf
  915. Command:   getlf - wait until a line has been typed
  916. Syntax:    getlf [argument]
  917. Flags:     (none)
  918. Example:   getlf                        # Wait for a line
  919.    In shell scripts it is sometimes necessary to  pause  to  give  the  user  a
  920. chance  to  perform  some  action,  such as inserting a diskette.  This command
  921. prints its argument, if any, and then waits until a carriage  return  has  been
  922. typed, at which time it terminates.  It is used in /etc/rc.
  923.  
  924. #grep
  925. Command:   grep - search a file for lines containing a given pattern
  926. Syntax:    grep [-ensv] pattern [file] ...
  927. Flags:     -e  -e pattern is the same as pattern
  928.            -n  Print line numbers
  929.            -s  Status only, no printed output
  930.            -v  Select lines that do not match
  931. Examples:  grep mouse file              # Find lines in file containing mouse
  932.            grep [0-9] file              # Print lines containing a digit
  933.    Grep searches one or more files (by default, stdin) and selects out all  the
  934. lines  that  match  the pattern.  All the regular expressions accepted by mined
  935. are allowed.  In addition, + can be used  instead  of  *  to  mean  1  or  more
  936. occurrences,  ?  can  be  used  to  mean  0 or 1 occurrences, and | can be used
  937. between two regular expressions to mean either one of them.  Parentheses can be
  938. used  for  grouping.   If  a  match is found, exit status 0 is returned.  If no
  939. match is found, exit status 1 is returned.   If  an  error  is  detected,  exit
  940. status 2 is returned.
  941.  
  942. #gres
  943. Command:   gres - grep and substitute
  944. Syntax:    gres [-g] pattern string [file] ...
  945. Flags:     -g  Only change the first occurrence per line
  946. Examples:  gres bug insect              # Replace bug with insect
  947.            gres ''^[A-Z]+$'' CAPS       # Replace capital-only lines with CAPS
  948.    Gres is a poor man's sed.  It looks for  the  same  patterns  as  grep,  and
  949. replaces each one by the given string.
  950.  
  951. #head
  952. Command:   head - print the first few lines of a file
  953. Syntax:    head [-n] [file] ...
  954. Flags:     -n  How many lines to print
  955. Examples:  head -6                      # Print first 6 lines of stdin
  956.            head -1 file1 file2          # Print first line of two files
  957.    The first few lines of one or more files are printed.  The default count  is
  958. 10 lines.  The default file is stdin.
  959.  
  960. #ic
  961. Command:   ic - integer calculator
  962. Syntax:    ic [expression]
  963. Flags:     (none)
  964. Examples:  ic  # Start the calculator
  965.            ic 250 300+                  # Start calculator with 550 on the stack
  966.    Ic is a reverse Polish notation calculator that works  on  32-bit  integers.
  967. It  starts  out  by  computing the expression given as an argument, if any, and
  968. then expects keyboard input.  As an example, to compute ``23+5'' one first con-
  969. verts  this  to  reverse  Polish,  ``23 5+''. After the calculator starts, type
  970. ``23'' followed by a carriage return.  Then type  ``5''  and  another  carriage
  971. return.   Finally  type  ``+''  to  see  the result, 28 displayed on the stack.
  972. Other operations work the same way.  The calculator can use other  radices  for
  973. input  and output, and has registers that can be stored and loaded.  The h com-
  974. mand gives the help menu.  See also /usr/doc/ic.doc.
  975.  
  976. #id
  977. Command:   id - print the uid and gid
  978. Syntax:    id
  979. Flags:     (none)
  980. Example:   id  # Print the uid and gid
  981.    Id prints the current uid and gid, both numerically  and  symbolically.   If
  982. the  effective  uid  and  gid are different from the real ones, all of them are
  983. printed.
  984.  
  985. #inodes
  986. Command:   inodes - print i-node information
  987. Syntax:    inodes
  988. Flags:     (none)
  989. Example:   inodes                       # Print information about inodes
  990.    Inodes expects a list of file names on stdin, one file name per  line.   For
  991. each  file named, the file type, mode, uid, gid, length, checksum, and and name
  992. is printed.  The checksum algorithm is the same as used by crc.
  993.  
  994. #kermit
  995. Command:   kermit - transfer a file using the kermit protocol
  996. Syntax:    kermit
  997. Flags:     (many)
  998. Example:   kermit                       # Start kermit
  999.    Kermit is a file transfer program, remote connection program, and much more.
  1000. Even  summarizing  it  here would be out of the question.  For a description of
  1001. it, see the 379 page book Kermit: A File Transfer Protocol by  Frank  da  Cruz,
  1002. Digital Press, 1987, ISBN 0-932376-88-6, and also /usr/doc/kermit.doc.
  1003.  
  1004. #kill
  1005. Command:   kill - send a signal to a process
  1006. Syntax:    kill [-sig] process
  1007. Flags:     -s  Signal number to send
  1008. Examples:  kill 35                      # Send signal 15 to process 35
  1009.            kill -9 40                   # Send signal 9 to process 40
  1010.            kill -2 0                    # Send signal 2 to whole process group
  1011.    A signal is sent to a given process.  By  default  signal  15  (SIGTERM)  is
  1012. sent.  Process 0 means all the processes in the sender's process group.
  1013.  
  1014. #last
  1015. Command:   last - display recent on-line session records
  1016. Syntax:    last [-f file] [-r] [-n] [name] [tty] ...
  1017. Flags:     -f  Use file instead of /usr/adm/wtmp
  1018.            -r  Search backwards only to last reboot
  1019.            -n  Print a maximum of n lines
  1020. Examples:  last reboot                  # When was the system last rebooted?
  1021.            last ast                     # When was the last login for ast?
  1022.            last -10 tty0 tty1           # Display last 10 logins on tty0 or tty1
  1023.    Last Searches backward through the login  administration  file  (default  is
  1024. /usr/adm/wtmp), printing information about previous logins and reboots.  During
  1025. a long search, the SIGQUIT signal (CTRL-\) causes last to display how far  back
  1026. it has gone; it then continues.
  1027.  
  1028. #leave
  1029. Command:   leave - warn when it is time to go home
  1030. Syntax:    leave [ [+] hh[:]mm]
  1031. Flags:     (none)
  1032. Examples:  leave 1500                   # Issue a warning at 2:55 p.m.:
  1033.            leave 10:00                  # Issue a warning at 9:55 a.m.
  1034.            leave + 30                   # Issue a warning in 25 minutes
  1035.    Leave sets an alarm clock to a specified time and issues a warning 5 minutes
  1036. before, 1 minute before, and at the time to leave.  It then keeps issuing warn-
  1037. ings every minute for 10 minutes, then quits.  If no time is provided, the pro-
  1038. gram prompts for one.
  1039.  
  1040. #libpack
  1041. Command:   libpack - pack an ASCII assembly code file
  1042. Syntax:    libpack
  1043. Flags:     (none)
  1044. Example:   libpack <x.s >y.s            # Pack x.s
  1045.    This program is a filter that reads an ASCII assembly code file  from  stan-
  1046. dard  input  and  writes the corresponding packed file on standard output.  The
  1047. compiler libraries are archives of packed assembly code files.
  1048.  
  1049. #libupack
  1050. Command:   libupack - convert a packed assembly code file to ASCII
  1051. Syntax:    libupack
  1052. Flags:     (none)
  1053. Example:   libupack <y.s >x.s           # Unpack y.s
  1054.    This program is a filter that reads a packed assembly code file  from  stdin
  1055. and writes the corresponding ASCII file on standard output.
  1056.  
  1057. #ln
  1058. Command:   ln - create a link to a file
  1059. Syntax:    ln file [name]
  1060. Flags:     (none)
  1061. Examples:  ln file newname              # Make newname a synonym for file
  1062.            ln /usr/games/chess          # Create a link called chess
  1063.    A directory entry is created for name.  The  entry  points  to  file.   Hen-
  1064. ceforth,  name  and file can be used interchangeably.  If name is not supplied,
  1065. the last component of file is used as the link name.
  1066.  
  1067. #login
  1068. Command:   login - log into the computer
  1069. Syntax:    login [user]
  1070. Flags:     (none)
  1071. Example:   login ast                    # Login as ast
  1072.    Login allows a logged in user to login as someone else without first logging
  1073. out.  If a password is needed, login will prompt for it.
  1074.  
  1075. #look
  1076. Command:   look - look up words in dictionary
  1077. Syntax:    look [-f] prefix[/suffix] [dictionary]
  1078. Flags:     -f  Fold upper case letters to lower case
  1079. Examples:  look ard                     # Print words starting with ard
  1080.            look /bing                   # Print words ending with bing
  1081.            look -f f/ar                 # Print words starting with f, ending with ar
  1082.    Look takes a prefix and/or suffix and searches  /usr/lib/dictionary  or  the
  1083. specified  dictionary  for  all  words with that match.  The words are printed.
  1084. The -f flag causes all upper case letters to be treated as lower case.
  1085.  
  1086. #lorder
  1087. Command:   lorder - compute the order for library modules
  1088. Syntax:    lorder file ...
  1089. Flags:     (none)
  1090. Example:   lorder proc1.s proc2.s       # Give lorder information
  1091.    Lorder accepts a series of packed or unpacked .s files  and  libraries,  and
  1092. produces a partial ordering suitable for processing by tsort.
  1093.  
  1094. #lpr
  1095. Command:   lpr - copy a file to the line printer
  1096. Syntax:    lpr [file ...
  1097. Flags:     (none)
  1098. Examples:  lpr file &                   # Print file on the line printer
  1099.            pr file | lpr &              # Print stdin (pr's output)
  1100.    Each argument is interpreted as a file to be printed.  Lpr copies each  file
  1101. to  /dev/lp,  without  spooling.  It inserts carriage returns and expands tabs.
  1102. Only one lpr at a time may be running.
  1103.  
  1104. #ls
  1105. Command:   ls - list the contents of a directory
  1106. Syntax:    ls [-ACFRadfgilrstuwx] name ...
  1107. Flags:     -A  All entries are listed, except . and ..
  1108.            -C  Multicolumn listing
  1109.            -F  Put / after directory names
  1110.            -R  Recursively list subdirectories
  1111.            -a  All entries are listed, even . and ..
  1112.            -c  Like -c except i-node change time used
  1113.            -d  Do not list contents of directories
  1114.            -f  List argument as unsorted directory
  1115.            -g  Group id given instead of user id
  1116.            -i  I-node number printed in first column
  1117.            -l  Long listing: mode, links, owner, size and time
  1118.            -r  Reverse the sort order
  1119.            -s  Give size in blocks (including indirect blocks)
  1120.            -t  Sort by time, latest first
  1121.            -u  Use last usage time instead of modification time
  1122. Examples:  ls -l                        # List files in working directory
  1123.            ls -lis                      # List with i-nodes and sizes
  1124.    For each file argument, list it.  For each directory argument, list its con-
  1125. tents,  unless  -d is present.  When no argument is present, the working direc-
  1126. tory is listed.
  1127.  
  1128. #m4
  1129. Command:   m4 - macro processor
  1130. Syntax:    m4 [-D name = value] [-U name]
  1131. Flags:     -D name = value              Define a symbol
  1132.            -U name                      Undefine a symbol
  1133. Example:   m4 <m4test                   # Run M4
  1134.    M4 is a general-purpose macro processor.  It is described in /usr/doc direc-
  1135. tory.  It has been used to implement programming languages, such as RATFOR.
  1136.  
  1137. #mail
  1138. Command:   mail - send and receive electronic mail
  1139. Syntax:    mail [pqr] [-f file] [user]
  1140. Flags:     -f  Use file instead of /usr/spool/mail/user as mailbox
  1141.            -p  Print all mail and then exit
  1142.            -q  Quit program if SIGINT received
  1143.            -r  Reverse print order, i.e., print oldest first
  1144. Examples:  mail ast                     # Send a message to ast
  1145.            mail                         # Read your mail
  1146.    Mail is an extremely simple electronic mail program.  It can be used to send
  1147. or  receive  email on a single MINIX system, in which case it functions as user
  1148. agent and local delivery agent.  If the MAILER is defined  in  mail.c,  it  can
  1149. also call a transport agent to handle remote mail as well.
  1150.    When  called  by  user  with  no  arguments,   it   examines   the   mailbox
  1151. /usr/spool/mail/user,  prints one message (depending on the -r flag), and waits
  1152. for one of the following commands:
  1153.   <newline> Go to the next message
  1154.   -         Print the previous message
  1155.   !command  Fork off a shell and execute command
  1156.   CTRL-D    Update the mailbox and quit (same as q)
  1157.   d         Delete the current message and go to the next one
  1158.   q         Update the mailbox and quit (same as CTRL-D)
  1159.   p         Print the current message again
  1160.   s [file]  Save message in the named file
  1161.   x         Exit without updating the mailbox
  1162.    To send mail, the program is called with the name of  the  recipient  as  an
  1163. argument.   The  mail  is sent, along with a postmark line containing the date.
  1164. For local  delivery,  a  file  named  after  the  recipient  in  the  directory
  1165. /usr/spool/mail must be writable.
  1166.  
  1167. #make
  1168. Command:   make - a program for maintaining large programs
  1169. Syntax:    make [-f file] [-ikns] [option] ... [target]
  1170. Flags:     -f  Use file as the makefile
  1171.            -i  Ignore status returned by commands
  1172.            -n  Report, but do not execute
  1173.            -p  Print macros and targets
  1174.            -q  Question up-to-dateness of target
  1175.            -r  Rule inhibit; do not use default rules
  1176.            -s  Silent mode
  1177.            -t  Touch files instead of making them
  1178. Examples:  make kernel                  # Make kernel up to date
  1179.            make -n -f file              # Tell what needs to be done
  1180.    Make is a program that is normally used for developing large  programs  con-
  1181. sisting  of  multiple  files.   It  keeps track of which object files depend on
  1182. which source and header files.  When called, it  does  the  minimum  amount  of
  1183. recompilation to bring the target file up to date.
  1184.    The file dependencies are expected in makefile or Makefile,  unless  another
  1185. file  is specified with -f.  Make has some default rules built in, for example,
  1186. it knows how to make .s files from .c files.  Here is a sample makefile.
  1187.   d=/user/ast                 # d is a macro
  1188.   program:                    head.s tail.s# program depends on these
  1189.           cc -o program head.s tail.s# tells how to make program
  1190.           echo Program done.  # announce completion
  1191.   head.s: $d/def.h head.c     # head.s depends on these
  1192.   tail.s: $d/var.h tail.c     # tail.s depends on these
  1193. A complete description of make would require too much  space  here.   For  more
  1194. information, see Feldman (1979).  Many books on UNIX also discuss make.
  1195.  
  1196. #man
  1197. Command:   man - display manual page
  1198. Syntax:    man [man_directory] [digit] [name] ...
  1199. Flags:     (none)
  1200. Examples:  man # Display main index
  1201.            man cdiff                    # Display man page for cdiff(1)
  1202.            man 2 fork                   # Display man page for fork(2)
  1203.            man 3                        # Display the part 3 man pages
  1204.    Man is a program that displays manual pages.  When  called  with  a  program
  1205. name,  it displays the manual page for that program.  When the digit k is given
  1206. as an argument,  the  file  /usr/man/mank  is  used  instead  of  the  default,
  1207. /usr/man/man1.   When  no  name  is  given (or just a digit), the list of valid
  1208. entries is displayed.  The arrows can be used to select an entry, and  <return>
  1209. can  be  used  to  display  the  selected entry.  Q or q leaves the program.  A
  1210. directory name can be given to override the use of /usr/man.
  1211.  
  1212. #master
  1213. Command:   master - control the creation of shervers
  1214. Syntax:    master count uid gid command
  1215. Flags:     (none)
  1216. Example:   master 2 1 1 /bin/sherver port# Start 2 shervers
  1217.    If a machine is intended to be used as a server,  its  /etc/rc  file  should
  1218. have a command similar to the example above.  When the system is booted, master
  1219. runs and forks off the required number of shervers (shell  servers),  up  to  a
  1220. maximum  of  four.   They run with the indicated uid and gid, and listen to the
  1221. indicated port. When an rsh is done on a client machine, the command  is  given
  1222. to one of the shervers for execution.  When the sherver is done, it exits, mas-
  1223. ter, which is always running, sees this, and creates a new sherver. Thus master
  1224. is  very  similar  to init, only it makes new shervers (usually) instead of new
  1225. login programs. Master must run as root to be able to do setuid and setgid.
  1226.  
  1227. #mined
  1228. Command:   mined - MINIX editor
  1229. Syntax:    mined [file]
  1230. Flags:     (none)
  1231. Examples:  mined /user/ast/book.3       # Edit an existing file
  1232.            mined                        # Call editor to create a new file
  1233.            ls -l | mined                # Use mined as a pager to inspect listing
  1234.    Mined (pronounced min-ed) is a simple full-screen editor.   When  editing  a
  1235. file,  it  holds the file in memory, thus speeding up editing, but limiting the
  1236. editor to files of up to about 43K.  Larger files must first be cut into pieces
  1237. by  split.   Lines may be arbitrarily long.  Output from a command may be piped
  1238. into mined so it can be viewed without scrolling off the screen.
  1239.    At any instant, a window of 24 lines is visible on the screen.  The  current
  1240. position  in the file is shown by the cursor.  Ordinary characters typed in are
  1241. inserted at the cursor.  Control characters and keys on the numeric keypad  (at
  1242. the  right-hand  side  of the keyboard) are used to move the cursor and perform
  1243. other functions.
  1244.    Commands exist to move forward and backward a word,  and  delete  words.   A
  1245. word  in  this  context  is  a sequence of characters delimited on both ends by
  1246. white space (space, tab, line feed, start of file, or end of file).   The  com-
  1247. mands for deleting characters and words also work on line feeds, making it pos-
  1248. sible to join two consecutive lines by deleting the line feed between them.
  1249.    The editor maintains one save buffer (not displayed).  Commands are  present
  1250. to  move  text from the file to the buffer, from the buffer to the file, and to
  1251. write the buffer onto a new file.  If the edited text cannot be written out due
  1252. to  a  full  disk,  it may still be possible to copy the whole text to the save
  1253. buffer and then write it to a different file on a different disk  with  CTRL-Q.
  1254. It  may  also be possible to escape from the editor with CTRL-S and remove some
  1255. files.
  1256.    Some of the commands prompt for  arguments  (file  names,  search  patterns,
  1257. etc.).   All commands that might result in loss of the file being edited prompt
  1258. to ask for confirmation.
  1259.    A key (command or ordinary character) can be repeated n times by typing  ESC
  1260. n key where ESC is the ``escape'' key.
  1261.    Forward and backward searching requires a regular expression as  the  search
  1262. pattern.  Regular expressions follow the same rules as in the UNIX editor, ed:
  1263.    1. Any displayable character matches itself.
  1264.    2. . (period) matches any character except line feed.
  1265.    3. ^ (circumflex) matches the start of the line.
  1266.    4. $ (dollar sign) matches the end of the line.
  1267.    5. \c matches the character c (including period, circumflex, etc).
  1268.    6. [string] matches any of the characters in the string.
  1269.    7. [^string] matches any of the characters except those in the string.
  1270.    8. [x-y] matches any characters between x and y (e.g., [a-z]).
  1271.    9. Pattern* matches any number of occurrences of pattern.
  1272. Some examples of regular expressions are:
  1273.   The boy matches the string ``The boy''
  1274.   ^$      matches any empty line.
  1275.   ^A.*\.$ matches any line starting with an A, ending with a period.
  1276.   ^[A-Z]*$matches any line containing only capital letters (or empty).
  1277.   [A-Z0-9]matches any line containing either a capital letter or a digit.
  1278.    Control characters cannot be entered into  a  file  simply  by  typing  them
  1279. because all of them are editor commands.  To enter a control character, depress
  1280. the ALT key, and then while holding it down, hit the ESC key.  Release both ALT
  1281. and  ESC  and  type the control character.  Control characters are displayed in
  1282. reverse video.
  1283.    The mined commands are as follows.
  1284. CURSOR MOTION
  1285.   arrows    Move the cursor in the indicated direction
  1286.   CTRL-A    Move cursor to start of current line
  1287.   CTRL-Z    Move cursor to end of current line
  1288.   CTRL-^    Move cursor to top of screen
  1289.   CTRL-_    Move cursor to end of screen
  1290.   CTRL-F    Move cursor forward to start of next word
  1291.   CTRL-B    Move cursor backward to start of previous word
  1292. SCREEN MOTION
  1293.   Home key  Move to first character of the file
  1294.   End key   Move to last character of the file
  1295.   PgUp key  Scroll window up 23 lines (closer to start of the file)
  1296.   PgDn key  Scroll window down 23 lines (closer to end of the file)
  1297.   CTRL-U    Scroll window up 1 line
  1298.   CTRL-D    Scroll window down 1 line
  1299. MODIFYING TEXT
  1300.   Del key   Delete the character under the cursor
  1301.   Backspace Delete the character to left of the cursor
  1302.   CTRL-N    Delete the next word
  1303.   CTRL-P    Delete the previous word
  1304.   CTRL-T    Delete tail of line (all characters from cursor to end of line)
  1305.   CTRL-O    Open up the line (insert line feed and back up)
  1306.   CTRL-G    Get and insert a file at the cursor position
  1307. BUFFER OPERATIONS
  1308.   CTRL-@    Set mark at current position for use with CTRL-C and CTRL-K
  1309.   CTRL-C    Copy the text between the mark and the cursor into the buffer
  1310.   CTRL-K    Delete text between mark and cursor; also copy it to the buffer
  1311.   CTRL-Y    Yank contents of the buffer out and insert it at the cursor
  1312.   CTRL-Q    Write the contents of the buffer onto a file
  1313. MISCELLANEOUS
  1314.   numeric + Search forward (prompts for regular expression)
  1315.   numeric - Search backward (prompts for regular expression)
  1316.   numeric 5 Display the file status
  1317.   CTRL-]    Go to specific line
  1318.   CTRL-R    Global replace pattern with string (from cursor to end)
  1319.   CTRL-L    Line replace pattern with string
  1320.   CTRL-W    Write the edited file back to the disk
  1321.   CTRL-X    Exit the editor
  1322.   CTRL-S    Fork off a shell (use CTRL-D to get back to the editor)
  1323.   CTRL-\    Abort whatever the editor was doing and wait for command
  1324.   CTRL-E    Erase screen and redraw it
  1325.   CTRL-V    Visit (edit) a new file
  1326.  
  1327. #mkdir
  1328. Command:   mkdir - make a directory
  1329. Syntax:    mkdir directory ...
  1330. Flags:     (none)
  1331. Examples:  mkdir dir                    # Create dir in the current directory
  1332.            mkdir /user/ast/dir          # Create the specified directory
  1333.    The specified directory or directories are created.  The entries  .  and  ..
  1334. are inserted into the new directory.
  1335.  
  1336. #mkfs
  1337. Command:   mkfs - make a file system
  1338. Syntax:    mkfs special prototype
  1339. Flags:     -L  Make a listing on standard output
  1340. Examples:  mkfs /dev/fd1 proto          # Make a file system on /dev/fd1
  1341.            mkfs /dev/fd1 360            # Make empty 360 block file system
  1342.    Mkfs builds a file system and copies specified files to it.   The  prototype
  1343. file  tells  which  directories and files to copy to it.  If the prototype file
  1344. cannot be opened, and its name is just a string of digits, an empty file system
  1345. will be made with the specified number of blocks.  A sample prototype file fol-
  1346. lows.  The text following the # sign is comment.  In the real  prototype  file,
  1347. comments are not allowed.
  1348.   boot                        # boot block file (ignored)
  1349.   360 63                           # blocks and i-nodes
  1350.   d--755 1 1                       # root directory
  1351.      bin   d--755 2 1         # bin dir: mode (755), uid (2), gid (1)
  1352.        sh  ---755 2 1 /user/ast/shell   # shell has mode rwxr-xr-x
  1353.        mv  -u-755 2 1 /user/ast/mv # u = SETUID bit
  1354.        login                  -ug755 2 1 /user/ast/login# SETUID and SETGID
  1355.      $                        # end of /bin
  1356.      dev   d--755 2 1         # special files: tty (char), fd0 (block)
  1357.        tty c--777 2 1 4 0     # uid=2, gid=1, major=4, minor=0
  1358.        fd0 b--644 2 1 2 0 360 # uid, gid, major, minor, blocks
  1359.      $                        # end of /dev
  1360.      user  d--755 12 1        # user dir: mode (755), uid (12), gid (1)
  1361.        ast d--755 12 1        # /user/ast
  1362.        $                      # /user/ast is empty
  1363.      $                        # end of /user
  1364.   $                           # end of root directory
  1365. The first entry on each line (except the first 3 and the $  lines,  which  ter-
  1366. minate  directories) is the name the file or directory will get on the new file
  1367. system. Next comes its mode, with the first character being  -dbc  for  regular
  1368. files,  directories,  block  special files and character special files, respec-
  1369. tively.  The next two characters are used to  specify  the  SETUID  and  SETGID
  1370. bits,  as  shown above.  The last three characters of the mode are the rwx pro-
  1371. tection bits.
  1372.    Following the mode are the uid and gid.  For special files,  the  major  and
  1373. minor  devices are needed.  The size in blocks must also be specified for block
  1374. special files (the MINIX block size is 1K; this can only be changed by changing
  1375. BLOCK_SIZE and then recompiling the operating system).
  1376.  
  1377. #mknod
  1378. Command:   mknod - create a special file
  1379. Syntax:    mknod file [b] [c] major minor
  1380. Flags:     (none)
  1381. Example:   mknod /dev/plotter c 7 0     # Create special file for a plotter
  1382.    Mknod creates a special file named file, with the indicated major and  minor
  1383. device numbers.  The second argument specifies a block or character file.
  1384.  
  1385. #more
  1386. Command:   more - pager
  1387. Syntax:    more [-cdflpsu] [-n] [+n] [+/pattern] [file] ...
  1388. Flags:     -d  Display prompt message at each pause
  1389.            -f  Do not fold lines
  1390.            -l  Do not treat CTRL-L as form feed
  1391.            -p  Page mode.  Do not scroll
  1392.            -s  Suppress multiple blank lines
  1393.            -u  Use escape sequences for underlining
  1394. Examples:  more file                    # Display file on the screen
  1395.            more -p file1 file2          # Display two files in page mode
  1396.            more -10 file                # Use a 10 line window
  1397.            more +/begin file            # Hunt for the string begin
  1398.    More is a pager that allows one to examine files.  This program is patterned
  1399. after  one originally produced at the University of California, Berkeley.  When
  1400. more starts up, it displays a screenful of information from the first  file  in
  1401. its  list, and then pauses for one of the following commands.  In this descrip-
  1402. tion, # represents an integer telling how many of something.
  1403.      <space>   - Display next page
  1404.      <return>  - Display next line
  1405.      CTRL-B    - Go backward half a screenful
  1406.      CTRL-D    - Go forward half a screenful
  1407.      CTRL-L    - Redisplay the screen
  1408.      #<space>  - Go forward # lines
  1409.      =         - Print current line number
  1410.      .         - Repeat previous command
  1411.      '         - (single quote) Go back to start of last search
  1412.      !         - Escape to a shell
  1413.      #/<expr>  - Go to #-th occurrence of <expr>
  1414.      :f        - Display current file name and line number
  1415.      #:n       - Skip forward # files
  1416.      #:p       - Skip backward # files
  1417.      b         - Go backward half a screenful
  1418.      d         - Go forward half a screenful
  1419.      #f        - Skip # screenfuls
  1420.      h         - Display /usr/lib/more.help
  1421.      #n        - Go to #-th occurence of last <expr>
  1422.      q         - Quit more
  1423.      Q         - Quit more
  1424.      #s        - Skip # lines
  1425.      v         - Try to execute /usr/bin/vi
  1426.      #z        - Go forward # lines and set screen size to #
  1427. For the benefit of users who always want to  use  certain  flags  when  calling
  1428. more,  the  shell  variable  MORE  can be set to the desired default flags, for
  1429. example,  MORE="-p".
  1430.  
  1431. #mount
  1432. Command:   mount - mount a file system
  1433. Syntax:    /etc/mount special file [-r]
  1434. Flags:     -r  File system is mounted read-only
  1435. Example:   /etc/mount /dev/fd1 /user    # Mount floppy disk 1 on /user
  1436.    The file system contained on the special file is mounted on  file.   In  the
  1437. example above, the root directory of the file system in drive 1 can be accessed
  1438. as /user after the mount.  When the file system is no longer needed, it must be
  1439. unmounted before being removed from the drive.
  1440.  
  1441. #mref
  1442. Command:   mref - make listing and cross reference map of MINIX
  1443. Syntax:    mref [-n] [-dlmtsx] [-p page] file ...
  1444. Flags:     -n  Number of lines to print per page, default = 50
  1445.            -d  Don't produce definition file (global symbol table)
  1446.            -l  Don't produce listing
  1447.            -m  Multiple reference on one line only are cited only once
  1448.            -p n                         Set initial page number to n
  1449.            -t  Generate troff macro call before each page
  1450.            -s  Suppress line numbering between procedures
  1451.            -x  Don't produce the cross reference map
  1452. Examples:  mref *.[hc]                  # List and cross reference files .h and .c
  1453.            mref -60 -t *.c              # Produce troff input at 60 lines/page
  1454.            mref -dx -p 100 *.c          # Listing only, first page is numbered 100
  1455.    In default mode, mref produces three output files: a numbered listing of the
  1456. input  files (on standard output), a global symbol table (on symbol.out), and a
  1457. cross reference map to the global symbols (on xref.out).  A  global  symbol  in
  1458. this  context is one present in a #define, PUBLIC, PRIVATE, or SYMBOL statement
  1459. (the latter being introduced to allow users to explicitly declare certain  sym-
  1460. bols as global).  Any of the three outputs can be suppressed, or alternatively,
  1461. be made suitable for input to troff for typesetting.
  1462.  
  1463. #mv
  1464. Command:   mv - move or rename a file
  1465. Syntax:    mv file1 file2
  1466.            mv file ... directory
  1467. Flags:     (none)
  1468. Examples:  mv oldname newname           # Move oldname to newname
  1469.            mv file1 file2 /user/ast     # Move two files to /user/ast
  1470.    Mv moves one or more files from one place in the file system to another.  If
  1471. the  old  path  and  new path are on the same device, it is done by linking and
  1472. unlinking, otherwise by copying.
  1473.  
  1474. #nm
  1475. Command:   nm - print name list
  1476. Syntax:    nm [-gnopru] [file] ...
  1477. Flags:     -g  Print only external symbols
  1478.            -n  Sort numerically rather than alphabetically
  1479.            -o  Prepend file name to each line rather than only once
  1480.            -p  Don't sort, print in symbol-table order
  1481.            -r  Sort in reverse order
  1482.            -u  Print only undefined symbols
  1483. Examples:  -nm -n a.out                 # Print all symbols in numerical order
  1484.            -nm -g a.out                 # Print global symbols alphabetically
  1485.    Nm prints the symbol table of executable files when it is available.  If  no
  1486. file  is given, the symbols in a.out are used. The format of the table is some-
  1487. what compatible with the one produced  by asld when used with  the  -s  option.
  1488. The  symbol  table can be added with ast. Archives are not supported. Note that
  1489. assembly language files don't have symbol tables.
  1490.  
  1491. #nro
  1492. Command:   nro - text formatter
  1493. Syntax:    nro [-bv] [+n] [-n] [-mmacros] [-pn] [file] ...
  1494. Flags:     +n  First page to print
  1495.            -n  Last page to print
  1496.            -b  Output device can backspace
  1497.            -m  Use /usr/lib/tmac/tmac.macros
  1498.            -p  Shift each line n spaces right
  1499.            -v  Print nro version number
  1500. Examples:  nro infile >outfile          # Format infile
  1501.            nro +3 -5 infile >outfile    # Only output pages 3-5
  1502.    Nro is a text formatter  patterned  loosely  on  nroff,  but  much  simpler.
  1503. Unlike  roff,  it  accepts  parametrized macros.  The commands are given in the
  1504. file /usr/doc/nro.doc.
  1505.  
  1506. #od
  1507. Command:   od - octal dump
  1508. Syntax:    od [-bcdhox] [file] [ [+] offset [.][b] ]
  1509. Flags:     -b  Dump bytes in octal
  1510.            -c  Dump bytes as ASCII characters
  1511.            -d  Dump words in decimal
  1512.            -h  Print addresses in hex (default is octal)
  1513.            -o  Dump words in octal (default)
  1514.            -x  Dump words in hex
  1515. Examples:  od -ox file                  # Dump file in octal and hex
  1516.            od -d file +1000             # Dump file starting at byte 01000
  1517.            od -c file +10.b             # Dump file starting at block 10
  1518.    Od dumps a file in one or more  formats.   If  file  is  missing,  stdin  is
  1519. dumped.   The  offset  argument  tells  od to skip a certain number of bytes or
  1520. blocks before starting.  The offset is in octal bytes, unless it is followed by
  1521. a ``.'' for decimal or b for blocks or both.
  1522.  
  1523. #passwd
  1524. Command:   passwd - change a login password
  1525. Syntax:    passwd [name]
  1526. Flags:     (none)
  1527. Examples:  passwd                       # Change current user's password
  1528.            passwd ast                   # Change ast's password (super-user only)
  1529.    Passwd is used to change your password.  It prompts  for  the  old  and  new
  1530. passwords.   It asks for the new password twice, to reduce the effect of a typ-
  1531. ing error.  Do not forget to copy the modified password file back to  the  root
  1532. file system diskette, or the changes will be lost when the system is rebooted.
  1533.  
  1534. #paste
  1535. Command:   paste - paste multiple files together
  1536. Syntax:    paste [-s] [-dc] file...
  1537. Flags:     -s  Print files sequentially, file k on line k
  1538.            -dc Set delimiter used to separate columns
  1539. Examples:  paste file1 file2            # Print file1 in col 1, file2 in col 2
  1540.            paste -s f1 f2 f3 f4         # Print f1 on line 1, f2 on line 2, etc
  1541.    Paste displays multiple files in parallel. Suppose a set  of  k  files  each
  1542. have  one  word  per  line. Then the paste output will have k columns, with the
  1543. contents of file j in column j. The columns are separate  by  tabs  unless  the
  1544. separator is changed with the -d flag.  If the -s flag is given, then the first
  1545. file is on line 1, the second file on line 2, etc. In effect, -s turns the out-
  1546. put sideways.
  1547.  
  1548. #patch
  1549. Command:   patch - patches up a file from the original and a diff
  1550. Syntax:    patch [-DFNbcdeflnop]
  1551. Flags:     -D  Mark changes with   #ifdef...#endif   next arg gives label
  1552.            -F  Sets the maximum fuzz factor
  1553.            -N  Ignore patches that are reversed or already applied
  1554.            -b  Next argument is backup extension, instead of .orig
  1555.            -c  Interpret the patch file as a context diff
  1556.            -d  Cd to the next arg (assumed a dir) before doing anything
  1557.            -e  Interpret the patch file as an ed script
  1558.            -f  Forces patch to do its work without asking any questions
  1559.            -l  Do matching loosely (e.g., all white space is equivalent)
  1560.            -n  Interpret the patch file as a normal diff
  1561.            -o  Next argument is the output file name
  1562.            -p  Sets the pathname strip count
  1563. Examples:  patch file difflist          # Fix up file
  1564.            patch <difflist              # Patch multiple files
  1565.    Patch takes an original file and a diff listing and recreates the new  file.
  1566. It  is  functionally  similar  to fix, but much more powerful.  Not only can it
  1567. handle normal diffs, but also context diffs produced by cdiff.  In addition, it
  1568. works even when the file being patched has other changes to it.  It deduces the
  1569. type of difflist itself (unless given -c, -e, or  -n).   The  normal  usage  is
  1570. given  in  the  example above.  In this case patch will modify 'file' to incor-
  1571. porate all the patches.  The original file will be saved to a file ending in  a
  1572. tilde.
  1573.    If no input  file  is  given,  patch  reads  stdin  which  may  contain  the
  1574. concatenation  of  multiple  diff  listings.   In  this way, all the files in a
  1575. directory may be updated at once.
  1576.  
  1577. #pr
  1578. Command:   pr - print a file
  1579. Syntax:    pr [[option] ... [-columns] [+page] [file] ...
  1580. Flags:     -h  Take next argument as page header
  1581.            -l  Sets page length in lines
  1582.            -n  Number the output lines
  1583.            -t  Do not print page header or trailer
  1584.            -w  Sets line length in characters
  1585. Examples:  pr -w72 -l60 file            # Use 72 character line, 60 line page
  1586.            pr -3 file                   # List file three columns to a page
  1587.            pr +4 file                   # Start printing with page 4
  1588.    Pr formats one or more files for printing.  If no files are specified, stdin
  1589. is printed.  Options are provided for setting the width and height of the page,
  1590. the number of columns to use (default 1), and the page  to  start  with,  among
  1591. others.
  1592.  
  1593. #pretty
  1594. Command:   pretty - MINIX pretty printer
  1595. Syntax:    pretty file ...
  1596. Flags:     (none)
  1597. Example:   pretty file1 file2           # Convert two files to MINIX layout
  1598.    Pretty converts one or more C source files to MINIX format by changing their
  1599. layout.   Running  this  program does not affect the resulting binary programs.
  1600. Actually, pretty is a postprocessor for indent, which must be installed in /bin
  1601. or  /usr/bin.   Although  the  output is not bad, it is not entirely consistent
  1602. with the book or even with itself.
  1603.  
  1604. #prep
  1605. Command:   prep - prepare a text file for statistical analysis
  1606. Syntax:    prep [file]
  1607. Flags:     (none)
  1608. Example:   prep infile >outfile         # Prepare infile
  1609.    Prep strips off most of the troff commands from a text file and then outputs
  1610. all  the  words,  one word per line, in the order they occur in the file.  This
  1611. file can then be sorted and compared to a dictionary (as a  spelling  checker),
  1612. or used for statistical analyses.
  1613.  
  1614. #printenv
  1615. Command:   printenv - print out the current environment
  1616.            printenv
  1617. Flags:     (none)
  1618. Example:   printenv                     # Print the environment
  1619.    Printenv prints out the current environment strings, one per line.
  1620.  
  1621. #printroot
  1622. Command:   printroot - print the name of the root device on standard output
  1623. Syntax:    printroot
  1624. Flags:     (none)
  1625. Example:   printroot                    # Print the name of the root device
  1626.    Printroot is useful for initializing the /etc/mtab entry when the system  is
  1627. booted.   It  figures  out  what  the root device is by searching /dev until it
  1628. finds a block special file with the right major/minor device numbers.
  1629.  
  1630. #pwd
  1631. Command:   pwd - print working directory
  1632. Syntax:    pwd
  1633. Flags:     (none)
  1634. Example:   pwd                          # Print the name of the working directory
  1635.    The full path name of the current working directory is printed.
  1636.  
  1637. #rcp
  1638. Command:   rcp - remote copy
  1639. Syntax:    rcp [mach1]!file1 [mach2]!file2
  1640. Flags:     (none)
  1641. Examples:  rcp file mach1!/usr/ast/x    # Local file to remote machine
  1642.            rcp mach2!/usr/ast/x file    # Fetch remote file x
  1643.    Rcp is not a program.  It is a shell script that does  remote  copying.   It
  1644. makes use of the programs to and from.
  1645.  
  1646. #readall
  1647. Command:   readall - read a device quickly to check for bad blocks
  1648. Syntax:    readall file
  1649. Flags:     (none)
  1650. Example:   readall /dev/hd0             # Read all of /dev/hd0
  1651.    Readall reads all of the named device in  large  chunks.  It  reports  about
  1652. blocks  that it cannot read.  Unlike diskcheck, it does not attempt to write on
  1653. the disk, making it safer to use when one is worried about a sick system.
  1654.  
  1655. #readclock
  1656. Command:   readclock - read the AT's real time clock
  1657. Syntax:    readclock
  1658. Flags:     (none)
  1659. Example:   date `/usr/bin/readclock` </dev/tty# Useful in /etc/rc
  1660.    Readclock reads the AT's real time clock and prints the  result  in  a  form
  1661. useful  to  date, namely, MMDDYYhhmmss. If the clock does not exist (e.g., on a
  1662. PC), it outputs "-q" to query the user for the time.  The example  given  above
  1663. can be put in /etc/rc to load the real time when the system is booted.
  1664.  
  1665. #readfs
  1666. Command:   readfs - read a MINIX file system
  1667. Syntax:    readfs [-il] block_special [dir]
  1668. Flags:     -i  Give information about the file, but do not extract files
  1669.            -l  List the files extracted on standard output
  1670. Example:   readfs -l /dev/fd0           # List contents of floppy disk
  1671.    Readfs reads a floppy disk containing a MINIX file system.  It  can  extract
  1672. all  the  files  from it, give a listing of them, or both.  The files extracted
  1673. can be put in a user-specified directory (default: current directory).  If sub-
  1674. directories are needed, they will be created automatically.
  1675.  
  1676. #recover
  1677. Command:   recover - recover files that have been removed.
  1678. Syntax:    recover file ...
  1679. Flags:     (none)
  1680. Examples:  rm x; recover x              # Unremove x
  1681.            recover a b c                # Recover three files
  1682.    MINIX allows files that have been deleted (e.g., with rm) to be restored (in
  1683. /tmp).  The trick is that when a file is unlinked, its i-node number is kept in
  1684. the directory entry.  As long as the directory entry and disk  blocks  are  not
  1685. reused,  the  file  can  be  recovered.  This program is actually just a little
  1686. front end for de, which must be installed and executable.
  1687.  
  1688. #rev
  1689. Command:   rev - reverse the characters on each line of a file
  1690. Syntax:    rev [file] ...
  1691. Flags:     (none)
  1692. Example:   rev file                     # Reverse each line
  1693.    Each file is copied to standard output with all the characters of each  line
  1694. reversed, last one first and first one last.
  1695.  
  1696. #rm
  1697. Command:   rm - remove a file
  1698. Syntax:    rm [-fir] name ...
  1699. Flags:     -f  Forced remove: no questions asked
  1700.            -i  Interactive remove: ask before removing
  1701.            -r  Remove directories too
  1702. Examples:  rm file                      # Remove file
  1703.            rm -i *.c                    # Remove .c files, asking about each
  1704.    Rm removes one or more files.  If a file has no write  permission,  rm  asks
  1705. for  permission (type ``y'' or ``n'') unless -f is specified.  If the file is a
  1706. directory, it will be recursively descended and removed if and only if  the  -r
  1707. flag is present.
  1708.  
  1709. #rmdir
  1710. Command:   rmdir - remove a directory
  1711. Syntax:    rmdir directory ...
  1712. Flags:     (none)
  1713. Examples:  rmdir /user/ast/foobar       # Remove directory foobar
  1714.            rmdir /user/ast/f*           # Remove 0 or more directories
  1715.    The specified directories are removed.  Ordinary files are not removed.
  1716.  
  1717. #roff
  1718. Command:   roff - text formatter
  1719. Syntax:    roff [-hs] [+n] [-n] file ...
  1720. Flags:     -h  Expand tabs to spaces in output
  1721.            -s  Stop before each page; continue on DEL
  1722.            +n  Start printing with page n
  1723.            n   Stop after page n
  1724. Examples:  roff file                    # Run off file
  1725.            roff +5 file                 # Run off file starting at page 5
  1726.    Roff is a text formatter.  Its input consists of  the  text  to  be  output,
  1727. intermixed with formatting commands.  A formatting command is a line containing
  1728. the control character followed by a two character command  name,  and  possibly
  1729. one  or  more  arguments.  The control character is initially ``.'' (dot).  The
  1730. formatted output is produced on standard output.
  1731.    The formatting commands are listed below, with n being a number, c  being  a
  1732. character,  and t being a title.  A + before n means it may be signed, indicat-
  1733. ing a positive or negative change from the current value.  Initial  values  for
  1734. n, where relevant, are given in parentheses.
  1735.   .ad     Adjust right margin.
  1736.   .ar     Arabic page numbers.
  1737.   .br     Line break.  Subsequent text will begin on a new line.
  1738.   .bl n   Insert n blank lines.
  1739.   .bp +n  Begin new page and number it n. No n means +1.
  1740.   .cc c   Control character is set to c.
  1741.   .ce n   Center the next n input lines.
  1742.   .de zz  Define a macro called zz. A line with ``..'' ends definition.
  1743.   .ds     Double space the output. Same as .ls 2.
  1744.   .ef t   Even page footer title is set to t.
  1745.   .eh t   Even page header title is set to t.
  1746.   .fi     Begin filling output lines as full as possible.
  1747.   .fo t   Footer titles (even and odd) are set to t.
  1748.   .hc c   The character c (e.g., %) tells roff where hyphens are permitted.
  1749.   .he t   Header titles (even and odd) are set to t.
  1750.   .hx     Header titles are suppressed.
  1751.   .hy n   Hyphenation is done if n is 1, suppressed if it is 0. Default is 1.
  1752.   .ig     Ignore input lines until a line beginning with ``..'' is found.
  1753.   .in n   Indent n spaces from the left margin; force line break.
  1754.   .ix n   Same as .in but continue filling output on current line.
  1755.   .li n   Literal text on next n lines.  Copy to output unmodified.
  1756.   .ll +n  Line length (including indent) is set to n (65).
  1757.   .ls +n  Line spacing: n (1) is 1 for single spacing, 2 for double, etc.
  1758.   .m1 n   Insert n (2) blank lines between top of page and header.
  1759.   .m2 n   Insert n (2) blank lines between header and start of text.
  1760.   .m3 n   Insert n (1) blank lines between end of text and footer.
  1761.   .m4 n   Insert n (3) blank lines between footer and end of page.
  1762.   .na     No adjustment of the right margin.
  1763.   .ne n   Need n lines.  If fewer are left, go to next page.
  1764.   .nn +n  The next n output lines are not numbered.
  1765.   .n1     Number output lines in left margin starting at 1.
  1766.   .n2 n   Number output lines starting at n.  If 0, stop numbering.
  1767.   .ni +n  Indent line numbers by n (0) spaces.
  1768.   .nf     No more filling of lines.
  1769.   .nx f   Switch input to file f.
  1770.   .of t   Odd page footer title is set to t.
  1771.   .oh t   Odd page header title is set to t.
  1772.   .pa +n  Page adjust by n (1).  Same as .bp
  1773.   .pl +n  Paper length is n (66) lines.
  1774.   .po +n  Page offset.  Each line is started with n (0) spaces.
  1775.   .ro     Page numbers are printed in Roman numerals.
  1776.   .sk n   Skip n pages (i.e., make them blank), starting with next one.
  1777.   .sp n   Insert n blank lines, except at top of page.
  1778.   .ss     Single spacing.  Equivalent to .ls 1.
  1779.   .ta     Set tab stops, e.g., .ta 9 17 25 33 41 49 57 65 73 (default).
  1780.   .tc c   Tabs are expanded into c.  Default is space.
  1781.   .ti n   Indent next line n spaces; then go back to previous indent.
  1782.   .tr ab  Translate a into b on output.
  1783.   .ul n   Underline the letters and numbers in the next n lines.
  1784.  
  1785. #rsh
  1786. Command:   rsh - remote shell for networking
  1787.            rsh port [-beil]
  1788. Flags:     -b  Start the rsh in the background
  1789.            -e  Keep stderr separate from stdout
  1790.            -i  Take input from the local process
  1791. Examples:  rsh machine5                 # ls
  1792.            rsh abc cat /usr/doc/f >f    # Fetch remote file
  1793.            rsh foobar                   # Log onto remote machine
  1794.    The remote shell command is the way to have a distant  server  carry  out  a
  1795. command  over  the  Ethernet.   The port given as the first argument can be any
  1796. string of up to 6 characters, but it must match the port used by some  sherver.
  1797. The command will be executed and the results returned on stdout.  Unless the -e
  1798. flag is given, the remote stderr and stdout are merged onto the  local  stdout.
  1799. Giving  rsh  with just a port and no argument is the standard way to log onto a
  1800. remote machine.
  1801.  
  1802. #rz
  1803. Command:   rz - receive a file using the zmodem protocol
  1804. Syntax:    rz [-abepquvy] [-t timeout]
  1805. Flags:     -a  CP/M to UNIX conventions
  1806.            -b  Binary file
  1807.            -e  Escape for all control characters
  1808.            -p  Protect file if it already exists
  1809.            -q  Quiet; opposite of verbose
  1810.            -t  Set timeout in tenths of a second
  1811.            -v  Verbose; opposite of quiet
  1812.            -y  Yes, clobber existing files
  1813. Examples:  rz </dev/tty1 >/dev/tty1     # Receive a file
  1814.    Rz is a program that accepts a file sent from  another  computer  using  the
  1815. zmodem  protocol.  It is a highly complex program.  See the /usr/doc/rz.doc and
  1816. /usr/doc/sz.doc files for more information.
  1817.  
  1818. #sed
  1819. Command:   sed - stream editor
  1820. Syntax:    sed [-f script_file] [edit_script] [file]
  1821. Flags:     -f  The following argument contains the edit script
  1822. Examples:  sed -f script <file          # Run a sed script on file
  1823.            sed '/pig/s//hog/g' <file    # Replace pig by hog in the file
  1824.    Sed is a stream editor.  It takes an edit script either from its argument or
  1825. a file, and performs an edit session on a named file or stdin, producing output
  1826. on stdout.
  1827.  
  1828. #sh
  1829. Command:   sh - shell
  1830.            sh [file]
  1831. Flags:     (none)
  1832. Example:   sh < script                  # Run a shell script
  1833.    Sh is the shell.  It permits redirection of input and output,  pipes,  magic
  1834. characters,  background processes, shell scripts and most of the other features
  1835. of the V7 (Bourne) shell.  A few of the more common commands are listed below:
  1836. date                # Regular command
  1837. sort <file          # Redirect input
  1838. sort <file1  >file2 # Redirect input and output
  1839. cc file.c  2>error  # Redirect  standard error
  1840. a.out >f  2>&1      # Combine standard output and standard error
  1841. sort <file1  >>file2     # Append output to file2
  1842. sort <file1  >file2 &    # Background job
  1843. (ls -l; a.out) &    # Run two background commands sequentially
  1844. sort <file | wc     # Two-process pipeline
  1845. sort <f | uniq | wc # Three-process pipeline
  1846. ls -l *.c           # List all files ending in .c
  1847. ls -l [a-c]*        # List all files beginning with a, b, or c
  1848. ls -l ?             # List all one-character file names
  1849. ls \?               # List the file whose name is question mark
  1850. ls '???'            # List the file whose name is three question marks
  1851. v=/usr/ast          # Set shell variable v
  1852. ls -l $v            # Use shell variable v
  1853. PS1='Hi! '          # Change the primary prompt to Hi!
  1854. PS2='More: '        # Change the secondary prompt to More:
  1855. ls -l $HOME         # List the home directory
  1856. echo $PATH          # Echo the search path
  1857. if ... then ... else ... fi   # If statement
  1858. for ... do ... done # Iterate over argument list
  1859. while ... do ... done    # Repeat while condition holds
  1860. case ...  esac      # Select clause based on condition
  1861. echo $?             # Echo exit status of previous command
  1862. echo $$             # Echo shell's pid
  1863. echo $#             # Echo number of parameters (shell script)
  1864. echo $2             # Echo second parameter (shell script)
  1865. echo $*             # Echo all parameters (shell script)
  1866.  
  1867. #shar
  1868. Command:   shar - shell archiver
  1869. Syntax:    shar file ...
  1870. Flags:     (none)
  1871. Examples:  shar *.c >s                  # Collect C programs in shell archive
  1872.            sh <s                        # Extract files from a shell archive
  1873.    The named files are collected together into a  shell  archive  written  onto
  1874. standard  output.   The  individual  files  can be extracted by redirecting the
  1875. shell archive into the shell.  The advantage of  shar  over  ar  is  that  shar
  1876. archives  can be read on almost any UNIX system, whereas numerous, incompatible
  1877. versions of ar are in widespread  use.   Extracting  the  files  from  a  shell
  1878. archive requires that sed be accessible.
  1879.  
  1880. #sherver
  1881. Command:   sherver - shell server
  1882. Syntax:    sherver port
  1883. Flags:     (none)
  1884. Example:   sherver machine1             # Start a sherver listening to port
  1885.    The rsh command does its remote execution by doing a remote  procedure  call
  1886. to  some  sherver.  The sherver executes the command and then exits.  Usually a
  1887. master will be running to make a new one.  Because  shervers  get  their  input
  1888. from  a  pipe,  remote execution cannot handle signals and CTRL-D, because they
  1889. cannot be sent down a pipe.
  1890.  
  1891. #size
  1892. Command:   size - print text, data, and bss size of a program
  1893. Syntax:    size [file] ...
  1894. Flags:     (none)
  1895. Example:   size file                    # Print the size of file
  1896.    The text, data, bss, and total sizes for each argument are printed.   If  no
  1897. arguments  are  present,  a.out is assumed.  The amount of memory available for
  1898. combined stack and data segment growth is printed in the column ``stack.'' This
  1899. is  the  value  manipulated  by  the chmem command.  The total amount of memory
  1900. allocated to the program when it is loaded is  listed  under  ``memory.''  This
  1901. value is just the sum of the other four columns.
  1902.  
  1903. #sleep
  1904. Command:   sleep - suspend execution for a given number of seconds
  1905. Syntax:    sleep seconds
  1906. Flags:     (none)
  1907. Example:   sleep 10                     # Suspend execution for 10 sec.
  1908.    The caller is suspended for the indicated number of seconds.   This  command
  1909. is typically used in shell scripts.
  1910.  
  1911. #sort
  1912. Command:   sort - sort a file of ASCII lines
  1913. Syntax:    sort [-bcdfimnru] [-tx]  [-o name] [+pos1] [-pos2] file ...
  1914. Flags:     -b  Skip leading blanks when making comparisons
  1915.            -c  Check to see if a file is sorted
  1916.            -d  Dictionary order: ignore punctuation
  1917.            -f  Fold upper case onto lower case
  1918.            -i  Ignore nonASCII characters
  1919.            -m  Merge presorted files
  1920.            -n  Numeric sort order
  1921.            -o  Next argument is output file
  1922.            -r  Reverse the sort order
  1923.            -t  Following character is field separator
  1924.            -u  Unique mode (delete duplicate lines)
  1925. Examples:  sort -nr file                # Sort keys numerically, reversed
  1926.            sort +2 -4 file              # Sort using fields 2 and 3 as key
  1927.            sort +2 -t: -o out           # Field separator is :
  1928.            sort +.3 -.6                 # Characters 3 through 5 form the key
  1929.    Sort sorts one or more files.  If no files are specified, stdin  is  sorted.
  1930. Output  is  written  on  standard  output, unless -o is specified.  The options
  1931. +pos1 -pos2 use only fields pos1 up to but not including pos2 as the sort  key,
  1932. where  a field is a string of characters delimited by spaces and tabs, unless a
  1933. different field delimiter is specified with -t.  Both pos1 and  pos2  have  the
  1934. form  m.n  where m tells the number of fields and n tells the number of charac-
  1935. ters.  Either m or n may be omitted.
  1936.  
  1937. #spell
  1938. Command:   spell - print all words in a file not present in the dictionary
  1939. Syntax:    spell file
  1940. Flags:     (none)
  1941. Example:   spell document               # Print the spelling errors on stdout
  1942.    Spell is the MINIX spelling checker. It is actually a  short  shell  script.
  1943. First,  the  program  prep strips off the roff, nroff, and troff control lines,
  1944. and the punctuation, and lists each word on a separate line.  These  words  are
  1945. then  sorted.   The resulting output is then compared to the dictionary.  Words
  1946. present in the file but not present in the dictionary are listed.  The diction-
  1947. ary should be located in /usr/lib/dictionary.
  1948.  
  1949. #split
  1950. Command:   split - split a large file into several smaller files
  1951. Syntax:    split [-n] [file [prefix]]
  1952. Flags:     -n  Number of lines per piece (default: 1000)
  1953. Examples:  split -200 file              # Split file into pieces of 200 lines each
  1954.            split file z                 # Split file into zaa, zab, etc.
  1955.    Split reads file and writes it out in n-line pieces.  By default, the pieces
  1956. are  called xaa, xab, etc.  The optional second argument can be used to provide
  1957. an alternative prefix for the output file names.
  1958.  
  1959. #strings
  1960. Command:   strings - print all the strings in a binary file
  1961.            strings file ...
  1962. Flags:     -   search whole file, not just data seg
  1963.            -o  Print octal offset of each string
  1964.            -n  N is minimum length string (default = 4)
  1965. Examples:  strings -5 a.out             # Print the strings > 4 chars in a.out
  1966.            strings - /bin/sh            # Search entire shell file (text and data)
  1967.    Strings looks for sequences of ASCII characters followed  by  a  zero  byte.
  1968. These  are  usually  strings.   This program is typically used to help identify
  1969. unknown binary programs
  1970.  
  1971. #strip
  1972. Command:   strip - remove symbol table from executable file
  1973. Syntax:    strip [file] ...
  1974. Flags:     (none)
  1975. Example:   strip a.out                  # Remove symbols from a.out
  1976.    For each file argument, strip removes the symbol table. Strip makes a   copy
  1977. of the file being stripped, so links are lost.
  1978.  
  1979. #stty
  1980. Command:   stty - set terminal parameters
  1981. Syntax:    stty [option ...]
  1982. Flags:     (none)
  1983. Examples:  stty -echo                   # Suppress echoing of input
  1984.            stty erase #                 # Set the erase character to #
  1985.    When given no arguments, stty prints the current  terminal  parameters.   It
  1986. can also be used to set the parameters, as follows:
  1987.   cbreak  - Enter cbreak mode; erase and kill disabled
  1988.   echo    - Echo input on the terminal
  1989.   nl      - Accept only line feed to end lines
  1990.   raw     - Enter raw mode; no input processing at all
  1991.   tabs    - Output tabs (do not expand to spaces)
  1992.   erase c - Set erase character (initially backspace)
  1993.   int c   - Set interrupt (SIGINT) character (initially DEL)
  1994.   kill c  - Set kill line character (initially @)
  1995.   quit c  - Set quit (SIGQUIT) character (initially CTRL-\)
  1996.   default - Set options back to original values
  1997. The first five options may be prefixed by - as in -tabs to turn the option off.
  1998. The  next  four  options  each have a single character parameter separated by a
  1999. space from the option.  The default option sets the mode and the four  settable
  2000. characters  back to the values they had when the system was booted.  It is use-
  2001. ful when a rogue program has messed them up.
  2002.  
  2003. #su
  2004. Command:   su - temporarily log in as super-user or another user
  2005. Syntax:    su [name]
  2006. Flags:     (none)
  2007. Examples:  su                           # Become super-user
  2008.            su ast                       # Become ast
  2009.    Su can be used to temporarily login as another user.   It  prompts  for  the
  2010. super-user  password.   If  the correct password is entered, su creates a shell
  2011. with the desired uid.  If no name is specified, root is assumed.  To  exit  the
  2012. temporary shell, type CTRL-D.
  2013.  
  2014. #sum
  2015. Command:   sum - compute the checksum and block count of a file
  2016. Syntax:    sum file
  2017. Flags:     (none)
  2018. Examples:  sum /user/ast/xyz            # Checksum /user/ast/xyz
  2019.    Sum computes the checksum of one or more files.  It is most  often  used  to
  2020. see  if  a  file copied from another machine has been correctly received.  This
  2021. program works best when both machines use the same checksum algorithm.
  2022.  
  2023. #svc
  2024. Command:   svc - shell version control system
  2025. Syntax:    ci [-l] [-u] file
  2026.            co [-l] [-r rev] file
  2027.            svc file
  2028. Flags:     -l  For ci, checkin, checkout again, and lock file
  2029.            -l  For ci, checkout file and then lock the archive
  2030.            -u  After checking in, do not delete the file
  2031.            -r  Check out revision rev instead most recent revision
  2032. Examples:  ci -u file                   # Check in file
  2033.            co -l file                   # Check out file and lock archive
  2034.            co -r 2 file                 # Check out version 2
  2035.    Svc is the Shell Version Control system, patterned on RCS.  It  maintains  a
  2036. sequence  of  versions in archive files, so that new versions can be checked in
  2037. (added to the archive), and old versions can be checked out  (made  available).
  2038. To  create an archive for file, check it in with the -u flag.  This action will
  2039. prompt for a log message and then  create  an  archive  called  file,S  in  the
  2040. current  directory,  or in the subdirectory SVC if it exists. The file will not
  2041. be deleted, but will be made unwritable.
  2042.    To update the file, check it out with the -l  flag.   Then  modify  it,  and
  2043. check  it  back in, giving a new message when prompted.  After this process has
  2044. been repeated many times, the archive will contain  the  entire  history.   Any
  2045. version  can  be  checked out using the -r flag.  To get a printout of the his-
  2046. tory, use svclog.
  2047.  
  2048. #sync
  2049. Command:   sync - flush the cache to disk
  2050. Syntax:    sync
  2051. Flags:     (none)
  2052. Example:   sync                         # Write out all modified cache blocks
  2053.    MINIX maintains a cache of recently used  disk  blocks.   The  sync  command
  2054. writes  any  modified  cache blocks back to the disk.  This is essential before
  2055. stopping the system, and should be done before running any a.out  program  that
  2056. might crash the system.
  2057.  
  2058. #sz
  2059. Command:   sz - send a file using the zmodem protocol
  2060. Syntax:    sz [-+LNbdefnopqruvy] [-ci command] [-Ll n] [-t timeout]
  2061. Flags:     -+  Append to an existing file
  2062.            -L  Use n-byte packets
  2063.            -N  Overwrite if source is newer/longer
  2064.            -b  Binary file
  2065.            -c  Send command for execution
  2066.            -d  Convert dot to slash in names
  2067.            -e  Escape for all control characters
  2068.            -f  Send full path name
  2069.            -i  Send command and return immediately
  2070.            -l  Flow control every n packets
  2071.            -n  Overwrite destination if source is newer
  2072.            -o  Use old (16-bit) checksum
  2073.            -p  Protect file if it already exists
  2074.            -q  Quiet; opposite of verbose
  2075.            -r  Resume interrupt file transfer
  2076.            -t  Set timeout in tenths of a second
  2077.            -u  Unlink file after successful transmission
  2078.            -v  Verbose; opposite of quiet
  2079.            -y  Yes, clobber existing files
  2080. Examples:  sz file </dev/tty1 >/dev/tty1# Send file
  2081.    Sz is a program that sends a file sent from another computer using the  zmo-
  2082. dem  protocol.   It  is  a highly complex program.  See the /usr/doc/sz.doc and
  2083. /usr/doc/rz.doc files for more information.
  2084.  
  2085. #tail
  2086. Command:   tail - print the last few lines of a file
  2087. Syntax:    tail [-n] [file] ...
  2088. Flags:     -n  How many lines to print
  2089. Examples:  tail -6                      # Print last 6 lines of stdin
  2090.            tail -1 file1 file2          # Print last line of two files
  2091.    The last few lines of one or more files are printed.  The default  count  is
  2092. 10 lines.  The default file is stdin.
  2093.  
  2094. #tar
  2095. Command:   tar - tape archiver
  2096. Syntax:    tar [cxtv] tarfile file ...
  2097. Flags:     -F  Force tar to continue after an error
  2098.            -c  Create a new archive
  2099.            -o  Use the uid/gid of the extractor
  2100.            -t  Print a table listing the archive's contents
  2101.            -v  Verbose mode-tell what is going on as it happens
  2102.            -x  The named files are extracted from the archive
  2103. Examples:  tar c /dev/fd1 file1 file2   # Create a two-file archive
  2104.            tar xv /dev/fd1 file1 file2  # Extract two files from the archive
  2105.            (cd src; tar c -) | (cd dest; tar x -)# Move src tree to dest
  2106.    Tar is an archiver in the style of the standard tape archiver,  except  that
  2107. it does not use tape.  It's primary advantage over ar is that the tar format is
  2108. somewhat more standardized than the ar format, making it theoretically possible
  2109. to  transport  MINIX  files  to another computer, but do not bet on it.  If the
  2110. target machine runs MS-DOS, try doswrite.
  2111.  
  2112. #tee
  2113. Command:   tee - divert stdin to a file
  2114. Syntax:    tee [-ai] file ...
  2115. Flags:     -a  Append to the files, rather than overwriting
  2116.            -i  Ignore interrupts
  2117. Examples:  cat file1 file2 | tee x      # Save and display two files
  2118.            pr file | tee x | lpr        # Save the output of pr on x
  2119.    Tee copies stdin to standard output.  It also makes copies on all the  files
  2120. listed as arguments.
  2121.  
  2122. #term
  2123. Command:   term - turn PC into a dumb terminal
  2124. Syntax:    term [baudrate] [parity] [bits_per_character]
  2125. Flags:     (none)
  2126. Examples:  term 2400                    # Talk to modem at 2400 baud
  2127.            term 1200 7 even             # 1200 baud, 7 bits/char, even parity
  2128.            term 8 9600                  # 9600 baud, 8 bits/char, no parity
  2129.    Term allows MINIX to talk to a terminal or modem over  RS232  port  1.   The
  2130. program  first  sets the baudrate, parity and character length, and then forks.
  2131. The parent sits in a loop copying from stdin (usually the console's  keyboard),
  2132. to the terminal or modem (/dev/tty1). The child sits in a loop copying from the
  2133. terminal or modem (/dev/tty1) to standard output. Thus when  RS232  port  1  is
  2134. connected  to  a  modem,  every  keystroke typed on the keyboard is sent to the
  2135. modem, and every character arriving from  the  modem  is  displayed.   Standard
  2136. input  and  output may be redirected, to provide a primitive file transfer pro-
  2137. gram, with no checking.  To exit term, hit the middle  button  on  the  numeric
  2138. pad.  Important note: to use term, it is essential that /etc/ttys is configured
  2139. so that there is no shell hanging on /dev/tty1. If there is, both the shell and
  2140. term will try to read from /dev/tty1, and nothing will work.
  2141.  
  2142. #termcap
  2143. Command:   termcap - print the current termcap entry
  2144. Syntax:    termcap [type]
  2145. Flags:     (none)
  2146. Example:   termcap                      # Print the termcap entry
  2147.    Termcap reads the /etc/termcap entry corresponding to the terminal type sup-
  2148. plied  as  the argument.  If none is given, the current $TERM is used.  It then
  2149. prints out all the parameters that apply.
  2150.  
  2151. #test
  2152. Command:   test - test for a condition
  2153. Syntax:    test expr
  2154. Flags:     (none)
  2155. Example:   test -r file                 # See if file is readable
  2156.    Test checks to see if files exist, are readable, etc. and  returns  an  exit
  2157. status of zero if true and nonzero if false.  The legal operators are
  2158.      -r file   true if the file is readable
  2159.      -w file   true if the file is writable
  2160.      -x file   true if the file is executable
  2161.      -f file   true if the file is not a directory
  2162.      -d file   true if the file is a directory
  2163.      -s file   true if the file exists and has a size > 0
  2164.      -t fd     true if file descriptor fd (default 1) is a terminal
  2165.      -z s      true if the string s has zero length
  2166.      -n s      true if the string s has nonzero length
  2167.      s1 = s2   true if the strings s1 and s2 are identical
  2168.      s1 != s2  true if the strings s1 and s2 are different
  2169.      m -eq m   true if the integers m and n are numerically equal
  2170. The operators -gt, -ge, -ne, -le, -lt may be used as well These operands may be
  2171. combined with -a (Boolean and), -o (Boolean or), !  (negation). The priority of
  2172. -a is higher than that of -o. Parentheses are permitted, but must be escaped to
  2173. keep the shell from trying to interpret them.
  2174.  
  2175. #time
  2176. Command:   time - report how long a command takes
  2177. Syntax:    time command
  2178. Flags:     (none)
  2179. Examples:  time a.out                   # Report how long a.out takes
  2180.            time ls -l *.c               # Report how long ls takes
  2181.    The command is executed and the real time, user time, and  system  time  (in
  2182. hours, minutes, and seconds) are printed.
  2183.  
  2184. #to
  2185. Command:   to - output half of a connection
  2186. Syntax:    to port
  2187. Flags:     (none)
  2188. Example:   cat f1 f2 | to mach4         # Send the catted files to port
  2189.    To and from are used together to provide  connection-oriented  service.   On
  2190. the sending machine, the last member of a pipeline is to port. On the receiving
  2191. machine, the first member of a pipe line is from port.  The net result is  that
  2192. the  output  of the sending pipeline goes into the input of the receiving pipe-
  2193. line, making pipelines work across the network. As a simple example, consider:
  2194.      on machine1:   cat f1 f2 | to Johnny
  2195.      on machine2:   from Johnny | sort >x
  2196. The effect of these two commands is that the files f1 and f2 are  concatenated,
  2197. transferred  to  machine 2, and sorted their, with the output going to a file x
  2198. on machine 2.  The string Johnny is used by the transaction system to  identify
  2199. which sender goes with which receiver; any unique string can be used.
  2200.  
  2201. #touch
  2202. Command:   touch - update a file's time of last modification
  2203. Syntax:    touch [-c] file ...
  2204. Flags:     -c  Do not create the file
  2205. Example:   touch *.h                    # Make the .h files look recent
  2206.    The time of last modification is set to the current time.  This  command  is
  2207. mostly  used  to  trick  make  into thinking that a file is more recent than it
  2208. really is.  If the file being touched does not exist, it is created, unless the
  2209. -c flag is present.
  2210.  
  2211. #tr
  2212. Command:   tr - translate character codes
  2213. Syntax:    tr [-cds] [string1] [string2]
  2214. Flags:     -c  Complement the set of characters in string1
  2215.            -d  Delete all characters specified in string1
  2216.            -s  Squeeze all runs of characters in string1 to one character
  2217. Examples:  tr ''[a-z]'' ''[A-Z]'' <x >y     # Convert upper case to lower case
  2218.            tr -d ''0123456789'' <f1 >f2  # Delete all digits from f1
  2219.    Tr performs simple character translation.  When no flag is  specified,  each
  2220. character in string1 is mapped onto the corresponding character in string2.
  2221.  
  2222. #traverse
  2223. Command:   traverse - print directory tree under the named directory
  2224. Syntax:    traverse dir
  2225. Flags:     (none)
  2226. Example:   traverse .                   # Print tree starting at working dir
  2227.    Traverse prints the tree structure starting at the named directory. All  the
  2228. subdirectories are listed, with the depth shown by indentation.
  2229.  
  2230. #treecmp
  2231. Command:   treecmp - recursively list differences in two directory trees
  2232. Syntax:    treecmp [-v] dir1 dir2
  2233. Flags:     -v  (verbose) list all directories processed
  2234. Example:   treecmp -v /usr/ast/V1 /usr/ast/V2# Compare two trees
  2235.    Treecmp recursively descends the directory tree of its  first  argument  and
  2236. compares  all  files to those at the corresponding position in the second argu-
  2237. ment. If the two trees are identical, i.e., all the  corresponding  directories
  2238. and files are the same, there is no output.  Otherwise, a list of files missing
  2239. from one of the trees or present in both but whose contents are  not  identical
  2240. in both are printed.
  2241.  
  2242. #true
  2243. Command:   true - exit with the value true
  2244. Syntax:    true
  2245. Flags:     (none)
  2246. Example:   while true                   # List the directory until DEL is hit
  2247.            do ls -l
  2248.            done
  2249.    This command returns the value true.  It is used for shell programming.
  2250.  
  2251. #tset
  2252. Command:   tset - set the $TERM variable
  2253. Syntax:    tset [device]
  2254. Flags:     (none)
  2255. Example:   eval `tset`                  # Set TERM
  2256.    Tset is used almost exclusively to set the shell variable TERM  from  inside
  2257. profiles.  If an argument is supplied, that is used as the value of TERM.  Oth-
  2258. erwise it looks in /etc/ttytype.
  2259.  
  2260. #tsort
  2261. Command:   tsort - topological sort
  2262. Syntax:    tsort file
  2263. Flags:     (none)
  2264. Example:   ar cr libc.a `lorder *.s | tsort`# Build library
  2265.    Tsort accepts a file of lines containing ordered pairs and  builds  a  total
  2266. ordering from the partial orderings.
  2267.  
  2268. #ttt
  2269. Command:   ttt - tic tac toe
  2270. Syntax:    ttt
  2271. Flags:     (none)
  2272. Example:   ttt                          # Start the game
  2273.    This program allows the user to engage in a game of tic tac toe (noughts and
  2274. crosses)  with the computer.  The program uses the alpha-beta algorithm, so the
  2275. user had better be sharp.
  2276.  
  2277. #tty
  2278. Command:   tty - print the device name of this tty
  2279. Syntax:    tty
  2280. Flags:     -s  Silent mode (return status only)
  2281. Example:   tty                          # Print the tty name
  2282.    Print the name of the controlling tty
  2283.  
  2284. #umount
  2285. Command:   umount - unmount a mounted file system
  2286. Syntax:    /etc/umount special
  2287. Flags:     (none)
  2288. Example:   /etc/umount /dev/fd1         # Unmount floppy disk 1
  2289.    A mounted file system is unmounted after the cache has been flushed to disk.
  2290. A  floppy  disk  should never be removed while it is mounted.  If this happens,
  2291. and is discovered before another floppy disk is inserted, the original one  can
  2292. be  replaced  without  harm.  Attempts to unmount a file system holding working
  2293. directories or open files will be rejected with a ``device busy'' message.
  2294.  
  2295. #unexpand
  2296. Command:   unexpand - convert spaces to tabs
  2297. Syntax:    unexpand [-a]
  2298. Flags:     -a  All spaces are unexpanded
  2299. Example:   unexpand oldfile >newfile    # Convert leading spaces to tabs
  2300.    Unexpand replaces spaces in the named files with  tabs.   If  no  files  are
  2301. listed,  stdin  is given.  The -a flag is used to force all sequences of spaces
  2302. to be expanded, instead of just leading spaces (the default).
  2303.  
  2304. #uniq
  2305. Command:   uniq - delete consecutive identical lines in a file
  2306. Syntax:    uniq [-cdu] [+n] [-n] [input [output]]
  2307. Flags:     -c  Give count of identical lines in the input
  2308.            -d  Only duplicate lines are written to output
  2309.            -u  Only unique lines are written to output
  2310. Examples:  uniq +2 file                 # Ignore first 2 fields when comparing
  2311.            uniq -d inf outf             # Write duplicate lines to outf
  2312.    Uniq examines a file for consecutive lines  that  are  identical.   All  but
  2313. duplicate  entries  are  deleted,  and  the  file is written to output.  The +n
  2314. option skips the first n fields, where a field is defined as a run  of  charac-
  2315. ters separated by white space.  The -n option skips the first n spaces.  Fields
  2316. are skipped first.
  2317.  
  2318. #update
  2319. Command:   update - periodically write the buffer cache to disk
  2320. Syntax:    /etc/update
  2321. Flags:     (none)
  2322. Example:   /etc/update &                # Start a process that flushes the cache
  2323.    When the system is booted, update is  started  up  in  the  background  from
  2324. /etc/rc to issue a SYNC system call every 30 sec.
  2325.  
  2326. #users
  2327. Command:   users - list the logged-in users
  2328. Syntax:    users
  2329. Flags:     (none)
  2330. Example:   users                        # list the users
  2331.    Users prints a single line of text containing the names of all the currently
  2332. logged-in users.
  2333.  
  2334. #uud
  2335. Command:   uud - decode a binary file encoded with uue
  2336. Syntax:    uud [-n] [-s srcdir/] [-n dstdir/] file
  2337. Flags:     -n  Do not verify checksums
  2338.            -s  Name of directory where .uue file is
  2339.            -t  Name of directory where output goes
  2340. Examples:  uud file.uue                 # Re-create the original file
  2341.            uud - <file.uue              # The - means use stdin
  2342.    Uud decodes a file encoded with uue or UNIX uuencode.  The decoded  file  is
  2343. given  the name that the original file had. The name information is part of the
  2344. encoded file.  Mail headers and other junk before the encoded file are skipped.
  2345.  
  2346. #uue
  2347. Command:   uue - encode a binary file to ASCII (e.g., for mailing)
  2348. Syntax:    uue [-n] file [-]
  2349. Flags:     -n  Do not verify checksums
  2350.            -n  How many lines to put in each file
  2351. Examples:  uue file                     # Encode file to file.uue
  2352.            uue file - >x                # Encode file and write on stdout
  2353.            uue -800 file                # Output on file.uaa, file.uab etc.
  2354.    Uuuencode is a famous program that converts an  arbitrary  (usually  binary)
  2355. file  to an encoding using only 64 ASCII characters.  Uudecode converts it back
  2356. to the original file.  The uue and uud programs are the MINIX versions of these
  2357. programs,  and  are compatible with the UNIX ones.  The files produced can even
  2358. be sent successfully over BITNET, which is notorious for mangling files.  It is
  2359. possible  to have uue automatically split the encoded file up into chunks small
  2360. enough to fit into mail messages.  The output files then get the suffixes .uaa,
  2361. .uab, etc., instead of .uue.  When uud is given file.uaa to decode, it automat-
  2362. ically includes the subsequent pieces.  The encoding takes 3  bytes  (24  bits)
  2363. from the input file and renders it as 4 bytes in the output file.
  2364.  
  2365. #vol
  2366. Command:   vol - split stdin into diskette-sized volumes
  2367. Syntax:    vol [-u] size block_special
  2368. Flags:     -u  Unsave from diskettes
  2369. Examples:  tar c - . | vol 360 /dev/fd0 # Prompt for disk every 360K
  2370.            vol -u 360 /dev/fd0 | tar x - # Restore a saved file system
  2371.    It occasionally happens that a program generates an output  stream  intended
  2372. for  diskette but the stream is to large to fit on one diskette.  Vol is a pro-
  2373. gram that accepts such a stream, and pauses every n blocks  to  request  a  new
  2374. diskette  to  be  inserted.   This  makes  it possible to save arbitrarily long
  2375. streams on a series of diskettes, as shown in the examples above.
  2376.  
  2377. #wc
  2378. Command:   wc - count characters, words, and lines in a file
  2379. Syntax:    wc [-clw] file ...
  2380. Flags:     -c  Print character count
  2381.            -l  Print line count
  2382.            -w  Print word count
  2383. Examples:  wc file1 file2               # Print all three counts for both files
  2384.            wc -l file                   # Print line count only
  2385.    Wc reads each argument and computes the  number  of  characters,  words  and
  2386. lines  it  contains.   A  word is delimited by white space (space, tab, or line
  2387. feed).  If no flags are present, all three counts are printed.
  2388.  
  2389. #whatsnew
  2390. Command:   whatsnew - print a newly modified file, marking changes
  2391. Syntax:    whatsnew [-n] file.c file.c.cdif
  2392. Flags:     -n  Output line length
  2393. Examples:  whatsnew file.c file.c.cdif  # Print file.c with changes marked
  2394.            whatsnew -70 file.c file.c.cdif# Same as above, but with 70 column line
  2395.    It commonly occurs that cdifs are posted to USENET.  After installing a cdif
  2396. file,  it  is  sometimes  desirable to print out the new file, with the changes
  2397. marked on it.  Whatsnew does precisely this, with the changes + and  !  printed
  2398. in the right-hand margin.
  2399.  
  2400. #whereis
  2401. Command:   whereis - examine system directories for a given file
  2402. Syntax:    whereis file
  2403. Flags:     (none)
  2404. Example:   whereis stat.h               # Prints: /usr/include/sys/stat.h
  2405.    Whereis searches a fixed set of system directories,  /bin,  /lib,  /usr/bin,
  2406. and others, and prints all occurrences of the argument name in any of them.
  2407.  
  2408. #which
  2409. Command:   which - examine $PATH to see which file will be executed
  2410. Syntax:    which name
  2411. Flags:     (none)
  2412. Example:   which a.out                  # Tells which a.out will be executed
  2413.    The $PATH shell variable controls the MINIX search rules. If a command a.out
  2414. is  given,  the  shell  first  tries  to find an executable file in the working
  2415. directory. If that fails, it looks in various system directories, such as  /bin
  2416. and  /usr/bin.  The  which command makes the same search and gives the absolute
  2417. path of the program that will be chosen, followed by other occurrences  of  the
  2418. file name along the path.
  2419.  
  2420. #who
  2421. Command:   who - print list of currently logged in users
  2422. Syntax:    who [file]
  2423. Flags:     (none)
  2424. Example:   who                          # Print user names, terminals and times
  2425.    Who prints a list of currently logged in users.   For  each  one,  the  user
  2426. name,  terminal,  and  login time is printed. This program gets its information
  2427. from the file /usr/adm/wtmp, which is updated by init and login.  If  the  file
  2428. does  not  exist, neither of these will create it, and who will not work.  Note
  2429. that if you decide to  create  an  empty  /usr/adm/wtmp  to  enable  the  login
  2430. accounting,  it  will  grow forever and eventually fill up your disk unless you
  2431. manually truncate it from time to time.  If an optional file name is  provided,
  2432. the logins in that file will be printed.
  2433.  
  2434. #whoami
  2435. Command:   whoami - print current user name
  2436. Syntax:    whoami
  2437. Flags:     (none)
  2438. Example:   whoami                       # Print user name
  2439.    In case you forget who you are logged in as, whoami will tell you.   If  you
  2440. use su to become somebody else, whoami will give the current effective user.
  2441.  
  2442. #width
  2443. Command:   width - force all the lines of a file to a given width
  2444. Syntax:    width [-n [ infile [outfile] ]
  2445. Flags:     -n  Outline line size
  2446. Examples:  width -60 x y                # Copy x to y, force lines to 60 cols
  2447.            width x                      # Copy default (80) column lines to stdout
  2448.    The input file is copied to the output file.  All  lines  are  forced  to  a
  2449. given  size  (default:  80 columns) by padding with spaces or truncating.  Tabs
  2450. are expanded to spaces.
  2451.  
  2452. #write
  2453. Command:   write - send a message to a logged-in user
  2454. Syntax:    write [cv] user [tty]
  2455. Flags:     -c  Use cbreak mode
  2456.            -v  Verbose mode
  2457. Examples:  write ast                    # Send a message to ast
  2458.            write ast tty1               # Send a message to ast on tty0
  2459.    Write lets a user send messages to another logged-in user.  Lines  typed  by
  2460. the  user  appear on the other user's screen a line at a time (a character at a
  2461. time in the case of cbreak mode). The file /usr/adm/wtmp is searched to  deter-
  2462. mine  which  tty to send to. If the user is logged onto more than one terminal,
  2463. the tty argument selects the terminal.  Type CTRL- D to terminate the  command.
  2464. Use ! as a shell escape.
  2465.